我有一个语法错误,意外'::'



令人惊奇的事情:

Class Myclass{
 protected $_value = 'content';
 public function action(){
  $this->_value::mymethod();
 }
}

=>我有一个错误:

语法错误,意外'::'

如果我像这样修改,它可以工作:

$myvalue = $this->_value;
$myvalue::mymethod();

你知道为什么吗?

PHP无法确定你想用

完成什么

$this->_value::mymethod();

可以读作

{$this->_value}::mymethod()(你期望它是什么)

$this->{_value::mymethod()}

因此,它不是猜测和可能是错误的,而是生成一个错误。只要使用你已经发现的方法就可以了。