我遇到的问题是,如果我通过$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私有在我的控制器的所有功能中使用。提前谢谢
答案 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