Opérateur de navigation sécurisée en POO en PHP
L'opérateur de navigation sécurisée ?-> permet
d'accéder en toute sécurité aux méthodes et propriétés des objets,
qui peuvent être null.
Regardons un exemple. Supposons que nous ayons la classe suivante :
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Créons un objet de cette classe :
<?php
$user = new User('john');
?>
Affichons la valeur de sa propriété :
<?php
$user = new User('john');
echo $user->name;
?>
Supposons maintenant qu'au lieu
d'un objet, nous ayons null. Dans ce cas,
tenter d'accéder au nom de l'utilisateur
entraînera une erreur :
<?php
$user = null;
echo $user->name; // erreur
?>
Pour éviter l'erreur, nous pouvons utiliser l'opérateur de navigation sécurisée :
<?php
$user = null;
echo $user?->name;
?>
Améliorez le code suivant en utilisant l'opérateur de navigation sécurisée :
<?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;
?>