Оператори истироқи бехатар дар ООП дар 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;
?>