Ο Τελεστής Ασφαλούς Πρόσβασης στο OOP στην PHP
Ο τελεστής ασφαλούς πρόσβασης ?-> επιτρέπει
την ασφαλή πρόσβαση σε μεθόδους και ιδιότητες αντικειμένων,
που μπορεί να είναι null.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Ας δημιουργήσουμε ένα αντικείμενο αυτής της κλάσης:
<?php
$user = new User('john');
?>
Ας εμφανίσουμε την τιμή της ιδιότητάς του:
<?php
$user = new User('john');
echo $user->name;
?>
Ας υποθέσουμε τώρα ότι αντί για
αντικείμενο έχουμε null. Σε αυτήν την περίπτωση
η προσπάθεια πρόσβασης στο όνομα του χρήστη
θα οδηγήσει σε σφάλμα:
<?php
$user = null;
echo $user->name; // σφάλμα
?>
Για να αποφύγουμε το σφάλμα, μπορούμε να χρησιμοποιήσουμε τον τελεστή ασφαλούς πρόσβασης:
<?php
$user = null;
echo $user?->name;
?>
Βελτιώστε τον ακόλουθο κώδικα χρησιμοποιώντας τον τελεστή ασφαλούς πρόσβασης:
<?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;
?>