Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppOpAdNOC 21 of 107 menu

Аператар бяспечнага здабывання ў ланцужках у ААП у PHP

Аператар бяспечнага здабывання ?-> можа ўжывацца ў ланцужках выклікаў. Давайце паглядзім на прыкладзе. Хай у нас ёсць наступныя класы:

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

Хай мы хочам атрымаць горад карыстальніка праз ланцужок:

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

У выпадку, калі горад роўны null, то выклік такой ланцужкі прывядзе да памылкі:

<?php $user = new User(); $user->city = null; echo $user->city->getName(); // памылка ?>

Каб падавіць памылку, мы можам выкарыстоўваць аператар бяспечнага здабывання:

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

Хай цяпер і горад можа быць null. У гэтым выпадку мы можам выкарыстоўваць аператар бяспечнага здабывання два разы:

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

Удасканальце наступны код праз аператар бяспечнага здабывання:

<?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('developer'); $employee = new Employee('john', $position); echo $employee->position->getName(); ?>
byenru