Anche se la maggior parte del codice PHP 4 esistente dovrebbe funzionare senza modifiche, occorre fare attenzione ai seguenti cambiamenti incompatibili col codice precedente:
E_ERROR
invece
di E_WARNING
. Un esempio di utilizzo illegale è:
$str = 'abc'; unset($str[0]);.
E_WARNING
viene
lanciato per ogni parametro. Prestare attenzione, poiché il codice può cominciare
ad emettere E_WARNING
improvvisamente.
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
.
__CLASS__
,
__METHOD__
, e __FUNCTION__
.
I valori sono restituiti esattamente come dichiarati (case-sensitive).
FALSE
quando un IP
address non valido è passata come argomento alla funzione, e non più
-1.
Example #1 strrpos() e strripos() ora utilizzano l'intera stringa come argomento di ricerca
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
Example #2 Un oggetto senza proprietà non è più considerato "vuoto"
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// Viene eseguito
}
?>
Example #3 In alcuni casi le classi devono essere dichiarate prima dell'utilizzo
<?php
//funziona senza errori:
$a = new a();
class a {
}
//emette un errore:
$a = new b();
interface c{
}
class b implements c {
}
?>