Le novità di PHP 5
La versione 5 di PHP include numerose novità rispetto alla versione precedente che consentiranno di sviluppare script piu "agili" on meno righe di codice, anche grazie alla maggiore implementazione della programmazione OO (oientata agli oggetti).
Fortunatamente, quasi tutti gli script PHP4 sono già preparati per girare anche su piattaforme PHP5, quindi non dovreste avere problemi quando frete la svolta.
PHP5 non ha solo una maggiore qualità della programazione OO, ma anche una nuova gestione degli errori con il metodo try/throw/catch.
Oltre a queste novità, PHP5 possiede anche numerose estensioni ad altri linguaggi e tecnologie come SAX, DOM, XSLT, SimpleXML, SOAP e SQLite, e anche nuove funzioni per MySQL.
Gli oggetti
Iniziamo subito con la novità piu evidente: l'approccio agli oggetti in PHP5. Mentre con PHP3 e PHP4 gli oggetti venivano uilizzati come valore e non come riferimento, PHP5 si accosta a tutti gli altri linguaggi, adottando il metodo a riferimento .
Questo nuovo approccio si affianca al nuovo motore Zend Engine II che introduce gli object handles, dei puntatori che consentono di utilizzare gli oggetti per riferimento.
Tra le altre novità di questa categoria, anche la possibilità di rendere pubblici, privati o protetti metodi e proprietà per proteggere gli oggetti, e altre novità che si accostano agli altri linguggi di programmazione (classi astratte, metodo __construct() e altro...)
La gestione degli errori
Con PHP4, per poter gestire gli errori, il metodo piu utilizzato era controllare le eccezioni per ogni azione effettuata (ad esempio: if (!mysql_query("SELECT * FROM abc WHERE 1")) print "Impossibile eseguire la query";). Con PHP5, invece, è possibile gestire gli errori con un metodo "centralizzato", grazie alle funziony try, throw e catch.
Vediamo un esempio di try,throw e catch all'opera:
<?php
#vogliamo che $var sia maggiore di 5, quindi verifichiamo che ciò sia vero tramite try, thro e catch.
try {
$var = 4;
if ($var < 5)
throw new Exception("var doveva essere maggiore di e non o è!!");
}
catch (Exception $e) {
echo "Si è verificata un'eccezione: $e";
}
Questo darà l'output con tutti i dettagli dell'errore (nome file, riga dell'errore) e il testo che noi abbiamo dato.
Come potete notare, questo puo sembrare una struttura simile all'if-else che utilizziamo per controllare a correttezza dei dati.
Nuove funzionalità nei riferimenti
Un'altra novità riguarda il nuovo approccio con le funzioni:
possiamo passare il valore dei paramteri tramite argomento:
function nome(& $nome = null){
if ($nome == null)
echo "Nessun nome inserito";
else
echo $nome;
}
Questo permetterà quindi di avere "Nessun nome inserito" in caso di nome();.
