Выбор ответа Junior PHP 8.x: enum, readonly, match обновлено

Оператор nullsafe

Вопрос

Что вернёт $order?->customer?->address?->city, если customer равен null?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: null без ошибок: цепочка оборвётся. Оператор ?- (PHP 8.0) возвращает null, если левая часть null, и не выполняет остаток цепочки (короткое замыкание).

Варианты ответа

  1. Error: Call to a member function on null
  2. Пустую строку "" вместо значения
  3. Warning: Attempt to read property и null
  4. null без ошибок: цепочка оборвётсяправильный ответ

Разбор

Оператор ?-> (PHP 8.0) возвращает null, если левая часть null, и не выполняет остаток цепочки (короткое замыкание). Без него пришлось бы писать вложенные проверки. В отличие от ??, он не подавляет предупреждения о несуществующих свойствах.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме