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();
PHP Просмотров: 931
Оценить код:

Комментарии

Ваш комментарий будет первым.
Войдите, чтобы оставить комментарий.