Почему выражения, в которых используется ключевое слово new, нуждаются в круглых скобках, чтобы их можно было использовать в цепочке выполнения? Например, в AS3 скобки не нужны. В PHP это стилистическая помощь интерпретатору или есть более серьезная причина, о которой я не знаю? Это проблема с приоритетом выполнения?
Цепочка конструкторов в PHP
Благодаря этому вопросу. Связывание конструктора с вызовом объектной функции в PHP. Я понял, как…
Определение объекта
Кроме того: очевидно, магический метод __construct всегда неявно возвращает $this, и если вы явно возвращаете $this (или что-нибудь в этом отношении ) ошибок/предупреждений/исключений не возникнет.
class Chihuahua
{
private $food;
function __construct( $food )
{
$this->food = $food;
}
function burp()
{
echo "$this->food burp!";
}
}
Работает
(new Chihuahua('cake'))->burp();
Не работает (но мне бы хотелось)
new Chihuahua('cake')->burp();
Подробнее здесь: https://stackoverflow.com/questions/140 ... r-chaining