Оператор 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();
Комментарии
0Нашли ошибку или хотите дополнить материал?