84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class App extends MY_Controller { private $sess_id = $this->session->userdata('userId');
如题 我声明了$sess_id为何不能正确执行 ?
认证0级讲师
这个不是CI问题吧。
属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
感谢大家的回答,__FresHmaN 和愚安的回答我验证了一下,说的很对,类里面的成员变量不能赋动态变量。如果要用动态变量,在类里声明 private $sess_id; function __construct(){ parent::__construct(); $this->sess_id = $this->session->userdata('userId'); }
这样每次new这个类的时候就会自动给$sess_id赋值
放到构造方法里试试吧
function __construct() { parent::__construct(); $this->sess_id = $this->session->userdata('userId'); }
是可以的,你可以把错误贴出来大家参考
PHP 的 Class 中的属性值只能是常数(int, string, bool ...),和 CI 没有关系!
这个不是CI问题吧。
类属性定义
属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
感谢大家的回答,__FresHmaN 和愚安的回答我验证了一下,说的很对,类里面的成员变量不能赋动态变量。如果要用动态变量,在类里声明
private $sess_id;
function __construct(){
parent::__construct();
$this->sess_id = $this->session->userdata('userId');
}
这样每次new这个类的时候就会自动给$sess_id赋值
放到构造方法里试试吧
是可以的,你可以把错误贴出来大家参考
PHP 的 Class 中的属性值只能是常数(int, string, bool ...),和 CI 没有关系!