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