Operátor bezpečného získávání v OOP v PHP
Operátor bezpečného získávání ?-> umožňuje
bezpečně přistupovat k metodám a vlastnostem objektů,
které mohou být null.
Podívejme se na příklad. Předpokládejme, že máme následující třídu:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Vytvořme objekt této třídy:
<?php
$user = new User('john');
?>
Vypišme hodnotu jeho vlastnosti:
<?php
$user = new User('john');
echo $user->name;
?>
Nyní předpokládejme, že místo
objektu máme null. V tomto případě
pokus o přístup k jménu uživatele
povede k chybě:
<?php
$user = null;
echo $user->name; // chyba
?>
K potlačení chyby můžeme použít operátor bezpečného získávání:
<?php
$user = null;
echo $user?->name;
?>
Vylepšete následující kód pomocí operátoru bezpečného získávání:
<?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;
?>