Operatorul de extragere în siguranță în OOP în PHP
Operatorul de extragere în siguranță ?-> permite
accesarea în siguranță la metode și proprietăți ale obiectelor,
care pot fi null.
Să analizăm un exemplu. Să presupunem că avem următoarea clasă:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Să creăm un obiect al acestei clase:
<?php
$user = new User('john');
?>
Să afișăm valoarea proprietății sale:
<?php
$user = new User('john');
echo $user->name;
?>
Să presupunem acum că, în loc de
obiect, avem null. În acest caz,
încercarea de a accesa numele utilizatorului
va duce la o eroare:
<?php
$user = null;
echo $user->name; // eroare
?>
Pentru a evita eroarea, putem utiliza operatorul de extragere în siguranță:
<?php
$user = null;
echo $user?->name;
?>
Îmbunătățiți următorul cod folosind operatorul de extragere în siguranță:
<?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;
?>