变量似乎并没有被定义
问题描述:
我包括这样变量似乎并没有被定义
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;
}
编辑的详细信息:根据意见,这是CakePHP的具体行为:从this thread
引导文件中包含的方法配置:: __ loadBootstrap(),所以 你必须标记你的全局变量关键字'global'as global - 否则它们仅在上述 方法的范围内有效。
因此,修改您的bootstrap.php这样
global $var= "value";
function myFunction(){
echo "myFunction echo";
}
应该做的伎俩。
好吧,我可以理解,它可能是一个关于我的变量布局上下文中的可见性问题,但bootstrap.php不应该是我可以定义我的应用程序的常量的地方?我无法联系到他们。 – Michael 2012-07-23 13:07:50
虽然它不适用于我甚至不使用$ GLOBALS ['var'],但它可能是另一个问题。 – Michael 2012-07-23 13:29:29
@Radu你确定包含变量的文件被正确包含吗? – fvu 2012-07-23 13:30:40