2014-01-06 52 views
0

變量$ WebSiteDirectory永遠不會取消設置怎麼過的,我仍然會得到錯誤信息PHP未定義的變量,犯規獲得未設置

變量獲取「/../Include/ini.inc.php」載:

$WebSiteDirectory = "mydir\"; 
$newLine = "<br />"; 
$phpNewLine = "\n"; 

其得到塞住了的地方是:

echo $WebSiteDirectory; // this line is fine 
function theFunction($VAR) { 
$dir = $WebSiteDirectory."my other dir"; // this line gets an error 
var_dump($dir); 
return file_exists($dir); 
} 

不知道有如果形成錯誤。不過,我也在程序的後面再使用$WebSiteDirectory,所以我知道它不會在任何地方被取消設置。我很確定我的瞎子

+0

'$全球WebSiteDirectory; $ dir = $ WebSiteDirectory。「我的其他目錄」;' – Passerby

回答

7

在PHP函數範圍之外的變量是不可見的。

您必須在$ WebSiteDirectory傳遞到函數作爲參數,或者您可以使用全局關鍵字

function theFunction($VAR){ 
    global $WebSiteDirectory 

請閱讀了關於PHP手冊第一可變範圍小,因爲它說明了一些好原因和反對這種方法:

http://www.php.net/manual/en/language.variables.scope.php

+0

乾杯 –

0

添加您的變量引入你的函數

function theFunction($VAR) { 

$WebSiteDirectory = "mydir"; 
$newLine = "<br />"; 
$phpNewLine = "\n"; 

$dir = $WebSiteDirectory."\my other dir"; // this line gets an error 
var_dump($dir); 
return file_exists($dir); 
} 

或者你也可以將此變量初始化爲全局變量

global $WebSiteDirectory = "mydir"; 
global $newLine = "<br />"; 
global $phpNewLine = "\n"; 

那麼只有你可以訪問此變量到您的functuion