Lo avevo anticipato che non sarebbero bastate poche pagine per descrivere tutte le nuove funzionalità orientate agli oggetti di PHP 5, ma prometto che questo è l'ultimo post specifico sull'argomento della serie verso PHP 5.
Oltre al supporto per costruttore, distruttore e metodi speciali PHP 5 introduce diverse novità molto utili.
Innanzi tutto 3 nuovi dichiarazioni di scope per le variabili di una classe.
In PHP 4 ogni variabile di classe era pubblica, nonostante fosse convenzione anteporre un carattere _
davanti a quelle ad uso privato.
In PHP 5 è possibile definire variabili pubbliche, private e protette. Il carattere underscore _
non è obbligatorio, ma la convenzione rimane tra i programmatori di vecchia data.
class User() { public $firstName; public $lastName; private $_username; protected $_email; }
Le stesse keyword, con medesimo significato, si applicano alla dichiarazione di metodi.
Esistono poi due ulteriori dichiarazioni: final e static.
Il primo costrutto rende una variabile/funzione non estendibile da sottoclassi.
La seconda invece permette è un po' più complessa.
Nel caso di metodi permette richiamare un metodo senza istanziare direttamente la classe, quindi non ha accesso alla variabile $this
.
Applicata ad una variabile consente alla variabile di mantenere il suo stato (valore) tra una chiamata di una funzione e l'altra. Questa casistica è molto utile per pattern di programmazione come il singleton.
PHP 5 consente inoltre di dichiarare costanti di classe, interfacce, classi astratte e metodi astratti.
Tutto questo rende PHP 5 un linguaggio molto più orientato agli oggetti rispetto alla versione precedente.