Base di conoscenze
1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Migrare un hosting 4 verso PHP 5.2
PHP 4.x e PHP 5.2.xhanno ciascuno i propri vantaggi e sono scarsamente compatibili fra di loro;una buona parte degli script previsti per PHP 4 non funzionano con PHP 5 evice-versa. Forniamo dei dettagli ma consigliamo, prima di richiedere unamigrazione per modificare la piattaforma, di testare il sito sulla vostramacchina (il server Web Apache è scaricabile gratuitamente su http://www.apache.org, PHP èdisponibile su http://www.php.org per le versioni 4 e 5).
Se utilizzate script PHP chenon sono stati sviluppati per la versione 5, occorre assolutamenteverificare che gli sviluppatori propongano degli aggiornamenti o delle nuoveversioni che funzionano sulla versione 5.
Avete scritto il codicePHP del sito da diversi anni e non siete sicuri che funzioni in PHP 5? Eccoalcune differenze fra le due versioni:
strrpos e stripos()utilizzano ora una catena intera. Di base, tali funzioni ricercanol'occorrenza di un solo carattere in una catena.
L'utilizzoimproprio di un indice su una catena di carattere produce un errore E_ERRORnel link di un avviso E_WARNING (esempio: $str = ‘abc'; unset($str[0]);)
array_merge() non accetta più le tabelle. Se volete aggiungere unelemento ad una tabella e utilizzare assolutamente questa funzione (e nonarray_push), dovrete mettere l'elemento in una tabella:array_merge($montableau, array ($monelement) ); se utilizzate comunquequesta funzione con un elemento che non è una tabella, verrà inviato unavviso E_WARNING e la tabella risultante sarà vuota.
La variabileserver PATH_TRANSLATED non contiene più lo stesso valore di PHP 4. Venivautilizzata nel caso di una scrittura dei link in Apache (ModRewrite).
La costante T_ML_CONSTANT non esiste più (era definitadall'estensione Tokenizer).
La versione CLI di PHP 5 utilizzeràsempre le variabili globali $argc e $argv.
Un oggetto senzaproprietà non è più considerato come vuoto (empty)
get_class()restituisce il nome della funzione come dichiarata, senza modificarne laforma. In PHP, il nome restituito era sempre in minuscolo. Allo stesso mododelle costanti predefinite __CLASSE__, __METODO__ e __FUNZIONE__.
ip2long() restituisce ora il falso booleano (false) se l'indirizzo dato nonè corretto. In PHP 4, la funzione restituisce -1.
La funzioneis_a() è deprezzata e non deve essere più utilizzata. Occorre utilizzarel'operatore instanceof.
Non potete più riassegnare $this in unoggetto.
include_once() e require_once() normalizzanoinnanzitutto il percorso da includere in Windows, dove includere il file A.php e il file a.php significa includere il file una sola volta.
Alcune parole chiave sono riservate da PHP5 e non bisogna utilizzarle:exception, interface, protected, throw, abstract, implements, clone, final,public, try, this, php_user_filter, private, catch. La maggior parte diqueste parole chiave vengono dall'estensione del concetto oggetto di PHP 5,con i concetti di variabili privati/pubblici, la gestione degli errori (try/catch, che i fan di Java devono conoscere a memoria), ecc.
Link a questa FAQ: