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() utilisent maintenant une chaîne de caractère en tant que needle

<?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
}
?>

L'exemple ci-dessous fonctionnait avec PHP 4, il entraîne une erreur fatale avec PHP 5.

Exemple B-3. Les classes doivent être déclarées avant d'être utilisées

<?php
$test
= new fubar();
$test->barfu();

class
fubar {
    function
barfu() {
        echo
'fubar';
    }
}
?>