2012-07-23 393 views
0

我包括這樣變量似乎並沒有被定義

include('files/settings.php'); 

的settings.php這個文件包含

$var= "value"; 
    function myFunction(){ 
     echo "myFunction echo"; 
    } 

現在的bootstrap.php文件,在我的一個模板中,我嘗試使用函數和變量。 問題是,雖然函數按預期工作,但當我嘗試打印變量時,出現「未定義」通知。

我使用CakePHP 2.1.3

謝謝!

回答

1

當這樣定義時,變量是一個全局變量。

你必須導入它在你想使用它的功能,像這樣:

function globalVariableUsingFunction() { 
    global $var; 
    echo $var; 
} 

php doc

編輯的詳細信息:根據意見,這是CakePHP的具體行爲:從this thread

引導文件中包含的方法配置:: __ loadBootstrap(),所以 你必須標記你的全局變量關鍵字'global'as global - 否則它們僅在上述 方法的範圍內有效。

因此,修改您的bootstrap.php這樣

global $var= "value"; 
function myFunction(){ 
    echo "myFunction echo"; 
} 

應該做的伎倆。

+0

好吧,我可以理解,它可能是一個關於我的變量佈局上下文中的可見性問題,但bootstrap.php不應該是我可以定義我的應用程序的常量的地方?我無法聯繫到他們。 – Michael 2012-07-23 13:07:50

+0

雖然它不適用於我甚至不使用$ GLOBALS ['var'],但它可能是另一個問題。 – Michael 2012-07-23 13:29:29

+0

@Radu你確定包含變量的文件被正確包含嗎? – fvu 2012-07-23 13:30:40