Оператор безопасного извлечения в ООП в PHP
Оператор безопасного извлечения ?->
позволяет
безопасно обращаться к методам и свойствам объектов,
которые могут быть null
.
Давайте посмотрим на примере. Пусть у нас есть следующий класс:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Создадим объект этого класса:
<?php
$user = new User('john');
?>
Выведем значение его свойства:
<?php
$user = new User('john');
echo $user->name;
?>
Пусть теперь случилось так, что вместо
объекта у нас null
. В этом случае
попытка обратиться к имени юзера
приведет к ошибке:
<?php
$user = null;
echo $user->name; // ошибка
?>
Чтобы подавить ошибку, мы можем использовать оператор безопасного извлечения:
<?php
$user = null;
echo $user?->name;
?>
Улучшите следующий код через оператор безопасного извлечения:
<?php
class Employee {
public $name;
public $salary;
public function __construct($name, $salary)
{
$this->name = $name;
$this->salary = $salary;
}
}
$employee = new Employee('john', 1000);
echo $employee->name;
echo $employee->salary;
?>