Codeigniter如何声明从控制器中的session_userdata获取值的私有变量

时间:2016-10-21 14:24:22

标签: php codeigniter session

我遇到的问题是,如果我通过$this->session->userdata()声明私有变量获取会话值。如果只是一个nomol字符串就可以了

private $table = 'contact'; // Work

private $my_prefix = $this->session->userdata('my_prefix'); 
// Error compile : Constant expression contains invalid operations

我在Controller中至少有3个或更多功能,其中一些需要让my_prefex会话在db中使用差异语言字段完成工作。 我不想在控制器中拥有的所有功能中声明$my_prefix = $this->session->userdata('my_prefix');。是否有可能声明1私有在我的控制器的所有功能中使用。提前谢谢

1 个答案:

答案 0 :(得分:1)

表达式不允许作为默认值,这也是您不能将属性设置为默认值1 + 1的原因,您必须将其设置为2.但是您应该能够将值设置为虽然构造函数。试试这个

Class Foo {
    private $my_prefix = '';
    function __construct() {
        $this->my_prefix = $this->session->userdata('my_prefix'); 
    }
}

在上面的代码中,我假设Foo对象可以访问codeigniters global $ this object

有关详细信息,此stackoverflow页面可以很好地解释它 Class - variable declaration