PHP da OOP da Xavfsiz Olish Operatorı
Xavfsiz olish operatori ?->
null bo'lishi mumkin bo'lgan ob'ektlarning
metod va xususiyatlariga xavfsiz murojaat qilish imkonini beradi.
Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi klass mavjud:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Ushbu klassning ob'ektini yaratamiz:
<?php
$user = new User('john');
?>
Uning xususiyati qiymatini chiqaramiz:
<?php
$user = new User('john');
echo $user->name;
?>
Endi faraz qilaylik, ob'ekt o'rniga
null bo'lib qoldi. Bu holda
foydalanuvchi nomiga murojaat qilishga urinish
xatolikka olib keladi:
<?php
$user = null;
echo $user->name; // xatolik
?>
Xatolikni oldini olish uchun biz xavfsiz olish operatoridan foydalanishimiz mumkin:
<?php
$user = null;
echo $user?->name;
?>
Quyidagi kodni xavfsiz olish operatori orqali yaxshilang:
<?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;
?>