|
Home -> Articoli -> PHP5
LE NOVITA' DEL PHP5
Nuova procedura di Installazione
Abbiamo già affrontato le diversità di installazione delle due versioni del PHP 4 e 5 in dettaglio nella guida del php e Apache.
Nuova libreria per MySQL
Altra differenza oramai nota è la nuova libreria del PHP 5 per MySQL: mysqli (vedere le due pagine relative a MySQL della quida PHP).
Cambiamenti nel codice
Oltre a quanto sopra citato, esistono altre modifiche sostanziali con la versione 4 del PHP, nuove funzioni e direttive.
Anche se la maggior parte del codice PHP 4 esistente dovrebbe funzionare senza modifiche, occorre fare attenzione ai seguenti cambiamenti incompatibili col codice precedente:
- Nelle versioni precedenti, iniziare uno script con <? era consentito ed il codice veniva interpretato lo stesso come php, mentre con il PHP5 no, e bisogna sempre iniziare uno script php con <?php .
- Ci sono alcune nuove parole chiave riservate.
- strrpos() e strripos() ora utilizzano l'intera stringa come argomento di ricerca.
- L'uso illegale degli offset delle stringhe causa E_ERROR invece di E_WARNING. Un esempio di utilizzo illegale è: $str = 'abc'; unset($str[0]);
- array_merge() è stata cambiata per accettare solo array. Se viene passata una variabile che non è un array, un E_WARNING viene lanciato per ogni parametro. Prestare attenzione, poiché il codice può cominciare ad emettere E_WARNING improvvisamente.
- La variabile server PATH_TRANSLATED non è più impostata implicitamente sotto Apache2 SAPI diversamente che in PHP 4, dove è impostato allo stesso valore della variabile server SCRIPT_FILENAME quando non è riempito da Apache. Questa modifica è stata fatta per adeguarsi alle specifiche CGI.
- La costante T_ML_COMMENT non è più definita dall'estensione Tokenizer. Se error_reporting è impostata a E_ALL, PHP genera un avviso. Anche se la costante T_ML_COMMENT non è mai stata utilizzata, era definita in PHP 4. Sia in PHP 4 che in PHP 5 // e /* */ sono risolte come la costante T_COMMENT. Comunque i commenti in stile PHPDoc /** */, che a partire da PHP 5 sono analizzate da PHP, sono riconosciute come T_DOC_COMMENT.
- $_SERVER dovrebbe essere popolata con argc e argv se variables_order include "S". Se si è configurato il sistema in modo da non creare $_SERVER, ovviamente questa non dovrebbe comparire. La modifica è stata quella di rendere argc e argv disponibile nella versione CLI a prescindere dall'impostazione di variables_order. Di conseguenza, la versione CLI ora popolerà sempre le variabili globali $argc e $argv.
- Un oggetto senza proprietà non è più considerato "vuoto".
- In alcuni casi le classi devono essere dichiarate prima dell'utilizzo. Questo succede solo se è usata qualcuna delle nuove caratteristiche di PHP 5 (come le interfacce). In caso contrario il comportamento è quello vecchio.
- get_class(), get_parent_class() e get_class_methods() ora restituiscono il nome di classi/metodi come sono dichiarati (case-sensitive) il che può portare a problemi in vecchi script che si basano sul comportamento precedente (il nome di classe/metodo era sempre restituito a caratteri minuscoli). Una soluzione possibile è quella di cercare queste funzioni negli script ed utilizzare strtolower(). Questa modifica alla sensibilità di maiuscole/minuscole si applica anche alle costanti magiche predefinite __CLASS__, __METHOD__, e __FUNCTION__. I valori sono restituiti esattamente come dichiarati (case-sensitive).
- ip2long() ora restituisce FALSE quando un IP address non valido è passata come argomento alla funzione, e non più -1.
- Se esistono funzioni definite in un file incluso, queste possono essere utilizzate nel file principale indipendentemente dal fatto che siano prima di return() o dopo. Se il file è incluso due volte, PHP 5 emette un errore fatale poiché le funzioni erano già dichiarate, mentre PHP 4 non si lamenta di questo. Si raccomanda di utilizzare include_once() invece di controllare se il file è stato già incluso e fare un return condizionato all'interno del file incluso.
- include_once() e require_once() in Windows per prima cosa normalizzano il percorso del file incluso in modo tale che includere A.php e a.php provochi una sola inclusione del file.
Nuove funzioni
In PHP 5 sono disponibili alcune nuove funzioni. Vi rimando a questa pagina della guida ufficiale per ulteriori approfondimenti e dettagli.
Nuove direttive
In PHP 5 sono disponibili anche nuove direttive nel file "php.ini". Vi rimando a questa pagina della guida ufficiale per ulteriori approfondimenti e dettagli.
Nuovo concetto di Classe
E' cambiato anche il concetto di classe in quanto oggetto, rispetto alla versione 4. Per comprendere meglio quanto detto, vi rimando alla lettura della guida ufficiale e di questo post sul forum del sito MasterDrive.it.
Cerca nel sito
|