Sikker hentningsoperator i OOP i PHP
Operatoren for sikker hentning ?-> tillader
sikker adgang til metoder og egenskaber af objekter,
som kan være null.
Lad os se på et eksempel. Lad os sige at vi har følgende klasse:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Lad os oprette et objekt af denne klasse:
<?php
$user = new User('john');
?>
Lad os udskrive værdien af dets egenskab:
<?php
$user = new User('john');
echo $user->name;
?>
Lad os nu sige at det sker, at vi i stedet for
et objekt har null. I dette tilfælde
vil et forsøg på at tilgå brugerens navn
føre til en fejl:
<?php
$user = null;
echo $user->name; // fejl
?>
For at undertrykke fejlen kan vi bruge operatoren for sikker hentning:
<?php
$user = null;
echo $user?->name;
?>
Forbedr følgende kode ved hjælp af operatoren for sikker hentning:
<?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;
?>