Twitt
@Twitt

В чем отличие между двумя созданиями объекта?

Есть две разных записи для создания объекта:
1. $core = new Core();
2. $name = (new Core())->getItem()->getName();

Во втором случае (мы new Core() обернули еще в скобочки), и можем обращаться сразу к его методам, а в первом случае - у нас это не получается. Почему? Как называется такая запись с дополнительными скобками, и что оно делает?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
ivan_zhuck
@ivan_zhuck
В далеком 2010 году перед разработчиками PHP встала задача предоставить поддержку вызова методов и доступа к свойствам созданного объекта одной строкой, поскольку ранее этого делать было нельзя. Также было предложено два варианта синтаксиса new foo->bar() и (new foo())->bar(), из которых был был выбран второй и реализован в 2011 году в PHP 5.4.0. Так что это просто часть синтаксиса языка.

Подробности: https://wiki.php.net/rfc/instance-method-call
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽