Оператор за безбедно извлекување во ООП во 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;
?>