【发布时间】:2014-04-16 20:12:00
【问题描述】:
基本上我想做的就是这个
class A {
public $prop = new stdClass;
}
PHP 告诉我我不能这样做:
PHP 解析错误:语法错误,意外的“新”(T_NEW) in - 在线 ##
那是怎么回事?我知道您基本上不能在初始化时将函数的返回值分配给属性,但是有人可以解释为什么会这样,就像技术上的东西一样。提前致谢!
【问题讨论】:
标签: php
基本上我想做的就是这个
class A {
public $prop = new stdClass;
}
PHP 告诉我我不能这样做:
PHP 解析错误:语法错误,意外的“新”(T_NEW) in - 在线 ##
那是怎么回事?我知道您基本上不能在初始化时将函数的返回值分配给属性,但是有人可以解释为什么会这样,就像技术上的东西一样。提前致谢!
【问题讨论】:
标签: php
尝试使用类构造函数:
class A {
public $prop;
public function __construct(){
$this->prop = new stdClass;
}
}
属性声明可能包括初始化,但这 初始化必须是一个常量值——也就是说,它必须能够 在编译时进行评估,并且不能依赖于运行时 信息以便进行评估。
【讨论】:
类变量必须用静态值初始化,例如
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
【讨论】: