2012-08-24 1 views
-2

у меня есть это в index.phpфункция PHP не получаю включают

require('include\inc\config.inc'); 

Когда я создал функцию, которая требует некоторой переменной из config.inc Когда я бегу, он говорит, что переменная отсутствует мне нужно redeclare config.inc иначе функция никогда не будет работать. Есть ли способ обойти? Теперь у меня есть это

function test(){ 
require('include\inc\config.inc'); 
echo $tmp;  
} 

вместо

require('include\inc\config.inc'); 
    function test(){  
    echo $tmp;  
    } 
+2

http://php.net/manual/en /language.variables.scope.php – zerkms

+0

Являются ли переменные в ваших глобальных конфигурациях? – BugFinder

+0

Вы также должны использовать косые черты для переносимости; и да, они тоже работают на DOS/Windows. – mario

ответ

2

Вы должны прочитать о variable scope. Переменная $tmp глобальна и не видно внутри какой-либо функции, если они не объявлены с global

require('include\inc\config.inc'); 
function test(){  
global $tmp; 
echo $tmp;  
} 
+3

Да, хотя было бы гораздо лучше реструктурировать код, чтобы глобальные переменные не нужны. – lonesomeday

0

Я не владеет в PHP, но вы не можете писать:

require('include\inc\config.inc'); 
function test() use ($tmp) { 
    echo $tmp; 
} 
0

Ваша переменная находится вне объема в функции test(), как указано выше, и использование глобальных переменных не считается хорошей практикой. Вы должны передать переменную $ TMP в тест функции(), как это: -

function test($tmp) 
{ 
    echo $tmp; 
} 

Затем вызовите функцию следующим образом: -

require_once 'include/inc/configure.inc' 
test($tmp); 
Смежные вопросы