2012-08-24 91 views
-2

我有這樣的index.php中PHP函數沒有得到包括

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

當我創建了需要從config.inc 一些變量。當我運行一個函數,它說的變量缺失 我需要重新聲明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);