⊗ppOpAdNOC 21 of 107 menu

Operatore di accesso sicuro nelle catene in OOP in PHP

L'operatore di accesso sicuro ?-> può essere applicato nelle catene di chiamate. Vediamo un esempio. Supponiamo di avere le seguenti classi:

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

Supponiamo di voler ottenere la città dell'utente tramite una catena:

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

Nel caso in cui la città sia null, una chiamata del genere risulterà in un errore:

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

Per sopprimere l'errore, possiamo utilizzare l'operatore di accesso sicuro:

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

Supponiamo ora che anche l'utente possa essere null. In questo caso possiamo utilizzare l'operatore di accesso sicuro due volte:

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

Migliora il seguente codice utilizzando l'operatore di accesso sicuro:

<?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('sviluppatore'); $employee = new Employee('john', $position); echo $employee->position->getName(); ?>
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta