Säker hämtningsoperator i OOP i PHP

Säker hämtningsoperator ?-> tillåter säker åtkomst till metoder och egenskaper för objekt som kan vara null.

Låt oss titta på ett exempel. Antag att vi har följande klass:

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

Låt oss skapa ett objekt av denna klass:

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

Låt oss skriva ut värdet på dess egenskap:

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

Antag nu att istället för ett objekt har vi null. I detta fall kommer ett försök att komma åt användarens namn att leda till ett fel:

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

För att undertrycka felet kan vi använda säker hämtningsoperator:

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

Förbättra följande kod med säker hämtningsoperator:

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