PHP да ООП да хавфсиз олиб чиқиш оператори

Хавфсиз олиб чиқиш оператори ?-> null бўлиши мумкин бўлган объектларнинг методларига ва хусусиятларига хавфсиз мурожат этиш имконини беради.

Келинг, мисолда кўрамиз. Бизда куйидаги класс бор деб фараз қилайлик:

php<?php
  class User
  {
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
    }
  }
?>

Бу класснинг объектини яратамиз:

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

Унинг хусусияти қийматини чиқарамиз:

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

Энди деб фараз қилайлик, объект ўрнига null бор. Бу ҳолатда фойдаланувчи номига мурожат этиш хатоликка олиб келади:

php<?php
  $user = null;
  echo $user->name; // хатолик
?>

Хатоликни босиб қолиш учун, биз хавфсиз олиб чиқиш операторидан фойдаланишимиз мумкин:

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

Куйидаги кодни хавфсиз олиб чиқиш оператори орқали яхшиланг:

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