Turvallisen poimintaoperaattori OOP:ssa PHP:ssä
Turvallisen poimintaoperaattori ?-> mahdollistaa
turvallisen viittaamisen menetelmiin ja ominaisuuksiin objekteissa,
jotka voivat olla null.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava luokka:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Luodaan tämän luokan objekti:
<?php
$user = new User('john');
?>
Tulostetaan sen ominaisuuden arvo:
<?php
$user = new User('john');
echo $user->name;
?>
Oletetaan nyt, että objektin sijasta
meillä on null. Tässä tapauksessa
yritys viitata käyttäjän nimeen
aiheuttaa virheen:
<?php
$user = null;
echo $user->name; // virhe
?>
Virheen tukahduttamiseksi voimme käyttää turvallista poimintaoperaattoria:
<?php
$user = null;
echo $user?->name;
?>
Paranna seuraavaa koodia turvallisen poimintaoperaattorin avulla:
<?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;
?>