变量似乎并没有被定义

问题描述:

我包括这样变量似乎并没有被定义

include('files/settings.php'); 

的settings.php这个文件包含

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

现在的bootstrap.php文件,在我的一个模板中,我尝试使用函数和变量。 问题是,虽然函数按预期工作,但当我尝试打印变量时,出现“未定义”通知。

我使用CakePHP 2.1.3

谢谢!

当这样定义时,变量是一个全局变量。

你必须导入它在你想使用它的功能,像这样:

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