⊗ppOpAdNOC 21 of 107 menu

Sikker udtrækningsoperator i kæder i OOP i PHP

Sikker udtrækningsoperator ?-> kan anvendes i kædekald. Lad os se på et eksempel. Lad os sige, at vi har følgende klasser:

<?php class User { public $city = null; } class City { public function getName() { return 'byens navn'; } } ?>

Lad os sige, at vi vil have brugerens by gennem kæden:

<?php $user = new User(); $user->city = new City(); echo $user->city->getName(); ?>

Hvis byen er lig med null, vil et sådant kædekald resultere i en fejl:

<?php $user = new User(); $user->city = null; echo $user->city->getName(); // fejl ?>

For at undertrykke fejlen kan vi bruge den sikre udtrækningsoperator:

<?php $user = new User(); $user->city = null; echo $user->city?->getName(); ?>

Lad os nu sige, at byen også kan være null. I dette tilfælde kan vi bruge operatoren for sikker udtrækning to gange:

<?php $user = null; echo $user?->city?->getName(); ?>

Forbedr følgende kode ved hjælp af den sikre udtrækningsoperator:

<?php class Employee { public $name; public $position; public function __construct($name, $position) { $this->name = $name; $this->position = $position; } } class Position { private $name; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } $position = new Position('udvikler'); $employee = new Employee('john', $position); echo $employee->position->getName(); ?>
huuzccsazpl