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