如果我尝试以下示例(PHP 5.4),则会收到以下错误:
解析错误:语法错误,意外 '::' (T_PAAMAYIM_NEKUDOTAYIM),期待 ',' 或 ';'
class a {
public $p;
public function __construct() {
$this->p = new b;
}
public function giveout() {
echo $this->p::c;
}
}
class b {
const c = '234';
}
$obj = new a;
$obj->giveout();
但为什么?难道不能在一个表达式中使用双冒号和箭头吗?我知道我也可以在 b 类中使用 getter 方法,然后调用$this->p->get()
,但我更愿意使用上面的语法。