Operator bezpiecznego wyodrębnienia w OOP w PHP
Operator bezpiecznego wyodrębnienia ?-> pozwala
bezpiecznie odwoływać się do metod i właściwości obiektów,
które mogą być null.
Spójrzmy na przykład. Załóżmy, że mamy następującą klasę:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Stwórzmy obiekt tej klasy:
<?php
$user = new User('john');
?>
Wypiszmy wartość jego właściwości:
<?php
$user = new User('john');
echo $user->name;
?>
Załóżmy teraz, że zamiast
obiektu mamy null. W tym przypadku
próba odwołania się do nazwy użytkownika
spowoduje błąd:
<?php
$user = null;
echo $user->name; // błąd
?>
Aby stłumić błąd, możemy użyć operatora bezpiecznego wyodrębnienia:
<?php
$user = null;
echo $user?->name;
?>
Popraw następujący kod za pomocą operatora bezpiecznego wyodrębnienia:
<?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;
?>