Задать вопрос
Twitt
@Twitt

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

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

Во втором случае (мы new Core() обернули еще в скобочки), и можем обращаться сразу к его методам, а в первом случае - у нас это не получается. Почему? Как называется такая запись с дополнительными скобками, и что оно делает?
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы