Ο Τελεστής Ασφαλούς Πρόσβασης στο OOP στην 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;
?>