基本上我想做的就是这个
class A {
public $prop = new stdClass;
}
PHP告诉我我不能这样做:
PHP Parse错误:语法错误,意外'新'(T_NEW)在线##
这是怎么回事?我知道你基本上不能在初始化时将函数的返回值赋给属性,但有人可以解释为什么这样,就像技术的东西一样。提前谢谢!
答案 0 :(得分:2)
尝试使用类构造函数:
class A {
public $prop;
public function __construct(){
$this->prop = new stdClass;
}
}
属性声明可能包括初始化,但是这一点 初始化必须是一个常量值 - 也就是说,它必须能够 在编译时进行评估,不得依赖于运行时 信息以便进行评估。
答案 1 :(得分:1)
类变量,例如
public $prop = 7; // ok
public $prop = 7+7; // ok - can be evaluated at compile time
public $prop = new stdClass; // bad, dynamic result.
public $prop = get_some_value(); //also bad, dynamic result not available at compile time