Operador de navegação segura em POO em PHP
O operador de navegação segura ?-> permite
acessar métodos e propriedades de objetos de forma segura,
quando estes podem ser null.
Vamos ver um exemplo. Suponha que temos a seguinte classe:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Vamos criar um objeto desta classe:
<?php
$user = new User('john');
?>
Vamos exibir o valor da sua propriedade:
<?php
$user = new User('john');
echo $user->name;
?>
Agora, suponha que, em vez do
objeto, temos null. Neste caso,
a tentativa de acessar o nome do usuário
resultará em um erro:
<?php
$user = null;
echo $user->name; // erro
?>
Para evitar o erro, podemos usar o operador de navegação segura:
<?php
$user = null;
echo $user?->name;
?>
Melhore o seguinte código usando o operador de navegação 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;
?>