一件令人惊奇的事:
Class Myclass{
protected $_value = 'content';
public function action(){
$this->_value::mymethod();
}
}
=>我有一个错误:
语法错误,意外' ::'
如果我像这样修改,它可以工作:
$myvalue = $this->_value;
$myvalue::mymethod();
你知道为什么吗?
答案 0 :(得分:3)
PHP无法自信地确定您要使用
完成的任务 $this->_value::mymethod();
可以读作
{$this->_value}::mymethod()
(你期望它是什么)
或
$this->{_value::mymethod()}
。
因此,它不是猜测而是可能是错误的,而是产生错误。只需使用您已经发现的方式。