Veilige extractie-operator in OOP in PHP

De veilige extractie-operator ?-> maakt het mogelijk om veilig methoden en eigenschappen van objecten aan te spreken, die null kunnen zijn.

Laten we een voorbeeld bekijken. Stel we hebben de volgende klasse:

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

Laten we een object van deze klasse aanmaken:

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

Laten we de waarde van zijn eigenschap weergeven:

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

Stel nu dat het gebeurt dat we in plaats van een object null hebben. In dit geval zal een poging om de gebruikersnaam aan te spreken tot een fout leiden:

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

Om de fout te onderdrukken, kunnen we de veilige extractie-operator gebruiken:

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

Verbeter de volgende code met behulp van de veilige extractie-operator:

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