Operador de obtención segura en POO en PHP
El operador de obtención segura ?-> permite
acceder de forma segura a métodos y propiedades de objetos
que pueden ser null.
Veamos un ejemplo. Supongamos que tenemos la siguiente clase:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Creemos un objeto de esta clase:
<?php
$user = new User('john');
?>
Mostremos el valor de su propiedad:
<?php
$user = new User('john');
echo $user->name;
?>
Supongamos ahora que, en lugar de
un objeto, tenemos null. En este caso,
el intento de acceder al nombre del usuario
provocará un error:
<?php
$user = null;
echo $user->name; // error
?>
Para suprimir el error, podemos utilizar el operador de obtención segura:
<?php
$user = null;
echo $user?->name;
?>
Mejore el siguiente código mediante el operador de obtención segura:
<?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;
?>