После замены некоторых моих нестатических переменных на статические переменные я получил несколько выражений, похожих на приведенное здесь. Это вызывает синтаксическую ошибку, но я не могу понять, почему.
Class Bar {
public static $name = "bar";
}
Class Foo {
public function getParent(){
$this->parentClass = new Bar();
return $this;
}
}
$foo = (new Foo())->getParent();
echo ($foo->parentClass)::$name; //this line is throwing a syntax error
//output:
PHP Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
Если я назначу объект переменной, он не выдаст ошибку:
$class = $foo->parentClass;
echo $class::$name;
//outputs "bar";
Я мог бы предположить, что возможно столкнулся с каким-то непредвиденным порядком проблем с операциями, но не могу понять, почему это синтаксическая ошибка, и мне интересно, есть ли способ сделать это в однострочном выражении. (Так как эта проблема была вызвана массовым поиском / заменой, было бы неплохо сохранить ее в одну строку)