Codeigniter模块类中的全局变量未定义

时间:2013-12-12 12:33:30

标签: php codeigniter hmvc globals

我在codeigniter模块控制器中有以下代码:

class MyClass extends MX_Controller{
    public $description = "index";
    public function index(){
        global $description;
        echo $description;
    }
}

根据正常PHP规则和PHP文档,这应该有效。但是,它没有。

如果我遗漏了global $description,我会收到有关变量undefined的通知,但如果它已经到位,它似乎无法返回任何内容。

为什么我不会global variables在这种情况下工作?

2 个答案:

答案 0 :(得分:0)

您可以这样设置变量:

$this->load->vars($global_variables_array);

其中$global_variables_array是关联键值对数组,描述为: -

  

此函数将关联数组作为输入,并使用PHP提取函数生成变量。此函数产生与使用上面的$ this-> load-> view()函数的第二个参数相同的结果。您可能希望独立使用此函数的原因是,您希望在控制器的构造函数中设置一些全局变量,并使它们在从任何函数加载的任何视图文件中可用。您可以多次调用此函数。数据被缓存并合并到一个数组中以转换为变量。

here is link

答案 1 :(得分:0)

你应该这样做,而不是使用全局。 这将适用于您在课堂范围内 所以你需要$this

class MyClass extends MX_Controller{
    public $description = "index";
    public function index(){
        echo $this->description;
    }
}