Переход с PHP 4 на PHP 5.0.x
PHP Manual

Изменения, повлекшие за собой обратную несовместимость

Несмотря на то, что большинство кода на PHP 4 должно работать безо всяких изменений, вам следует обратить внимание на следующие изменения, повлекшие за собой обратную несовместимость:

Пример #1 strrpos() и strripos() теперь используют в качестве искомого параметра (needle) всю строку

<?php
var_dump
(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Пример #2 Объект без свойств больше не считается "пустым"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    
// Будет выполнено
}
?>

Пример #3 В некоторых случаях классы должны быть объявлены перед использованием

<?php

//работает без ошибок:
$a = new a();
class 
{
}


//вызывает ошибку:
$a = new b();

interface 
c{
}
class 
implements {
}

?>


Переход с PHP 4 на PHP 5.0.x
PHP Manual