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<?php
  class User
  {
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
    }
  }
?>

Ushbu klassning ob'ektini yaratamiz:

php<?php
  $user = new User('john');
?>

Uning xususiyati qiymatini chiqaramiz:

php<?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<?php
  $user = null;
  echo $user->name; // xatolik
?>

Xatolikni oldini olish uchun biz xavfsiz olish operatoridan foydalanishimiz mumkin:

php<?php
  $user = null;
  echo $user?->name;
?>
Задание 1

Quyidagi kodni xavfsiz olish operatori orqali yaxshilang:

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