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;
?>