Operatorul de extragere în siguranță în OOP în PHP

Operatorul de extragere în siguranță ?-> permite accesarea în siguranță la metode și proprietăți ale obiectelor, care pot fi null.

Să analizăm un exemplu. Să presupunem că avem următoarea clasă:

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

Să creăm un obiect al acestei clase:

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

Să afișăm valoarea proprietății sale:

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

Să presupunem acum că, în loc de obiect, avem null. În acest caz, încercarea de a accesa numele utilizatorului va duce la o eroare:

php<?php
  $user = null;
  echo $user->name; // eroare
?>

Pentru a evita eroarea, putem utiliza operatorul de extragere în siguranță:

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

Îmbunătățiți următorul cod folosind operatorul de extragere în siguranță:

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