Вызов метода при создании экземпляра класса

86
19 августа 2021, 15:40

меня интересует следующий момент, я могу вызвать метод сразу после создания экземпляра класса таким образом:

(new Class)->method()

никак не могу найти подробное описание такого способа, чем плох, чем хорош? И почему, мы сначала вызываем метод, а только потом создаем экземпляр? или создание экземпляра в скобках по другому интерпретируется? Благодарю за ответ.

Answer 1

Ответ на английском на StackOverflow.

Запрашиваемая вами функция доступна в PHP 5.4. Вот список новых функций в PHP 5.4: https://www.php.net/manual/ru/migration54.new-features.php И соответствующая часть из списка новых функций: Добавлена возможность получения доступа к члену класса при создании экземпляра. Например: (new Foo)->bar().

От себя могу только добавить, что такая нотация используется когда нас не интересует сам объект, а требуется только вызвать его метод. В (new Class) мы создаем экземпяр объекта, как обычно. А поскольку нас интересует только результат выполнения метода, мы вызываем метод этого объекта ->method().

Пример использования:

$formattedDate = (new DateTime($timestamp, new DateTimeZone('Europe/Moscow')))
                 ->format('d/m/Y H:i:s');
READ ALSO
Каждый элемент одного ключа массива соответствует каждому элементу других ключей массива

Каждый элемент одного ключа массива соответствует каждому элементу других ключей массива

уже второй день голову ломаю как решить данную проблемуПоиск к сожалению ничего не дает (может ищу неправильно)

132
Regex в условиях MySQL запроса

Regex в условиях MySQL запроса

В PHP использую :

313
Imagick не читает svg

Imagick не читает svg

Почему он не читает svg?

206