Incompatibilités avec les version antérieures

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 B-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 B-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 B-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 {
}

?>