Оператор за безопасно извличане в ООП в 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;
?>