Veilige extractie-operator in OOP in PHP
De veilige extractie-operator ?-> maakt het mogelijk
om veilig methoden en eigenschappen van objecten aan te spreken,
die null kunnen zijn.
Laten we een voorbeeld bekijken. Stel we hebben de volgende klasse:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Laten we een object van deze klasse aanmaken:
<?php
$user = new User('john');
?>
Laten we de waarde van zijn eigenschap weergeven:
<?php
$user = new User('john');
echo $user->name;
?>
Stel nu dat het gebeurt dat we in plaats van
een object null hebben. In dit geval
zal een poging om de gebruikersnaam aan te spreken
tot een fout leiden:
<?php
$user = null;
echo $user->name; // fout
?>
Om de fout te onderdrukken, kunnen we de veilige extractie-operator gebruiken:
<?php
$user = null;
echo $user?->name;
?>
Verbeter de volgende code met behulp van de veilige extractie-operator:
<?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;
?>