⊗ppOpBsGSA 14 of 107 menu

Vantaggi di setter e getter in OOP in PHP

Nella lezione precedente abbiamo creato un getter e un setter per ogni proprietà. Potrebbe sorgere la domanda: a cosa servono tutte queste complicazioni, dato che praticamente lo stesso effetto si può ottenere rendendo le proprietà pubbliche invece che private.

Il punto è che i getter e i setter hanno un vantaggio: prima di accedere alla proprietà è possibile eseguire alcuni controlli. Ad esempio, nel nostro caso, quando impostiamo nome e cognome, possiamo verificare che il nuovo valore non sia una stringa vuota:

<?php class User { private $name; private $surn; public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'name is incorrect'; } } public function setSurn($surn) { if (strlen($surn) > 0) { $this->surn = $surn; } else { echo 'surn is incorrect'; } } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Verifichiamo come funziona. Per prima cosa creiamo un oggetto della classe:

<?php $user = new User(); ?>

Ora proviamo a impostare un valore corretto:

<?php $user->setName('john'); ?>

E ora proviamo a impostare un valore non corretto:

<?php $user->setName(''); // errore ?>

Nella classe Employee, nel setter dell'età, aggiungete un controllo per verificare che l'età deve essere compresa tra 0 e 120.

Nella classe Employee, nel getter dello stipendio, fate in modo che alla lettura dello stipendio, alla fine del suo valore venga aggiunto il simbolo del dollaro.

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