Säker hämtningsoperator i OOP i PHP
Säker hämtningsoperator ?-> tillåter
säker åtkomst till metoder och egenskaper för objekt
som kan vara null.
Låt oss titta på ett exempel. Antag att vi har följande klass:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Låt oss skapa ett objekt av denna klass:
<?php
$user = new User('john');
?>
Låt oss skriva ut värdet på dess egenskap:
<?php
$user = new User('john');
echo $user->name;
?>
Antag nu att istället för
ett objekt har vi null. I detta fall
kommer ett försök att komma åt användarens namn
att leda till ett fel:
<?php
$user = null;
echo $user->name; // fel
?>
För att undertrycka felet kan vi använda säker hämtningsoperator:
<?php
$user = null;
echo $user?->name;
?>
Förbättra följande kod med säker hämtningsoperator:
<?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;
?>