Heim  >  Artikel  >  Backend-Entwicklung  >  ci框架类里为何不能声明成员变量?

ci框架类里为何不能声明成员变量?

WBOY
WBOYOriginal
2016-06-06 20:36:14876Durchsuche

class App extends MY_Controller {
private $sess_id = $this->session->userdata('userId');

如题 我声明了$sess_id为何不能正确执行 ?

回复内容:

class App extends MY_Controller {
private $sess_id = $this->session->userdata('userId');

如题 我声明了$sess_id为何不能正确执行 ?

这个不是CI问题吧。

类属性定义

属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。

感谢大家的回答,__FresHmaN 和愚安的回答我验证了一下,说的很对,类里面的成员变量不能赋动态变量。如果要用动态变量,在类里声明
private $sess_id;
function __construct(){
parent::__construct();
$this->sess_id = $this->session->userdata('userId');
}

这样每次new这个类的时候就会自动给$sess_id赋值

放到构造方法里试试吧

<code> function __construct()
 {
    parent::__construct();
    $this->sess_id = $this->session->userdata('userId');
 }
</code>

是可以的,你可以把错误贴出来大家参考

PHP 的 Class 中的属性值只能是常数(int, string, bool ...),和 CI 没有关系!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn