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