似乎没有定义cakephp中bootstrap.php包含的文件中的变量

时间:2012-07-23 12:55:01

标签: cakephp bootstrapping

我在bootstrap.php中包含了一个像这样的文件

include('files/settings.php');

settings.php文件包含

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

现在,在我的一个模板中,我尝试使用函数和变量。 问题是当函数按预期工作时,当我尝试打印变量时,我得到一个“未定义”的通知。

我使用CakePHP 2.1.3

谢谢!

1 个答案:

答案 0 :(得分:1)

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

您必须在要使用它的函数中导入它,如下所示:

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

php doc

中的更多信息

编辑:根据评论,这是CakePHP特定的行为:来自this thread

  

文件引导程序包含在方法Configure :: __ loadBootstrap()中   您必须通过关键字“global”将全局变量标记为全局变量 -   否则它们仅在上述范围内有效   方法

所以,像这样修改你的bootstrap.php

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

应该这样做。