Bien que la plupart des scripts PHP 4 existants devraient fonctionner, il convient de noter quelques incompatibilités avec les versions antérieures de PHP :
Exemple #1 strrpos() et strripos() recherchent maintenant une chaîne de caractères dans une autre
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
Exemple #2 Un objet sans propriété n'est plus considéré comme vide (empty())
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// Cette portion de code sera exécutée
}
?>
Exemple #3 Dans certains cas, les classes doivent être déclarées avant d'être utilisées
<?php
// fonctionne sans erreur :
$a = new a();
class a {
}
// ici, une erreur :
$a = new b();
interface c{
}
class b implements c {
}
?>