PHP: Оператор nullsafe
Оператор nullsafe (?->) в PHP позволяет безопасно обращаться к свойствам или методам объекта, которые могут быть null. Если объект равен null, вместо генерации ошибки, выражение вернёт null.
# Без оператора nullsafe: if($user !== null ) { $name = $user->getName(); } else { $name = null; } # С оператором nullsafe: $name = $user?->getName();
1. Обращение к методу
class User { public function getName() { return 'Alex'; } } $user = new User(); $name = $user?->getName(); // вернёт 'Alex' $user = null; $name = $user?->getName(); // вернёт null # Если вы попробуете вызвать метод на null объекте без использования nullsafe оператора, то есть так: $user = null; $name = $user->getName(); # В этом случае PHP сгенерирует ошибку уровня "Fatal error", которая будет выглядеть примерно так: Fatal error: Uncaught Error: Call to a member function getName() on null
2. Цепочки вызовов
# Если хотя бы один из объектов в этой цепочке будет null, то всё выражение вернёт null. $order = $user?->getOrder()?->getItems()?->first();
Комментарии