Operatore di accesso sicuro in OOP in PHP
L'operatore di accesso sicuro ?-> consente
di accedere in sicurezza a metodi e proprietà di oggetti
che potrebbero essere null.
Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Creiamo un oggetto di questa classe:
<?php
$user = new User('john');
?>
Stampiamo il valore della sua proprietà:
<?php
$user = new User('john');
echo $user->name;
?>
Supponiamo ora che invece dell'oggetto
abbiamo null. In questo caso
il tentativo di accedere al nome dell'utente
risulterà in un errore:
<?php
$user = null;
echo $user->name; // errore
?>
Per evitare l'errore, possiamo utilizzare l'operatore di accesso sicuro:
<?php
$user = null;
echo $user?->name;
?>
Migliora il seguente codice utilizzando l'operatore di accesso sicuro:
<?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;
?>