У меня есть 2 класса
class A {
// Do some stuff here!
}
и
class B {
public $class = 'A';
public function getClass(){
//Case 1
$class = $this->class;
return new $class(); //work
//Case 2
return new $this->class(); //NOT work
//or to be precise something like this
return new {$this->class}();
}
// Do some other stuff here!
}
Почему пропусканием свойство класса в вар работы и доступа непосредственно NOT, как вы видите на класс выше, Случай 1 против Случай 2?
Beacuse 'вернуть новый $ this-> класс();' неоднозначен .... вы имеете в виду 'вернуть новый ($ this-> class()); 'или вы имеете в виду' return new ($ this) -> class(); '? (скобки добавлены, чтобы показать потенциальную двусмысленность) –
Just FYI: Точный код выше работал на моем Linux-сервере с PHP 5.6.21 отлично. – smozgur
он работает для меня, как вы ожидали, с php 5.6 и 7 –