En PHP 5.0, is_a() quedó obsoleto en favor del operador
    instanceof. Había algunos problemas con la implementación
    inicial de instanceof, que dependía de
    __autoload() para localizar las clases no encontradas.
    Si no se localizara la clase, instanceof emitiría un error
    fatal E_ERROR ya que
    __autoload() fallaría al ubicar la clase. Este mismo comportamiento
    tenía lugar con el operador catch y con la función
    is_subclass_of(), por la misma razón.
   
En PHP 5.1.x ninguna de estas funciones y operadores llama a __autoload(), y los trucos tipo class_exists() que se usaban con PHP 5.0.x, pese a que no provocan problemas, ya no serán necesarios.
Los métodos privados abstractos estaban permitidos entre PHP 5.0.0 y PHP 5.0.4, pero se prohibió su uso ya que los comportamientos de private y abstract son mutuamente excluyentes.
    En PHP 5.0, las declaraciones de funciones en interfaces se trataban de la misma
    manera que las declaraciones de funciones en clases. Desde octubre de 2004 esto
    no es así, fecha a partir de la cual se permite el modificador de acceso public
    en la declaración de funciones en interfaces. Desde abril de 2005
    - fecha de la edición de PHP 5.0b1 - se permitió usar también el modificador
    static. Pero los modificadores
    protected y private ahora emiten
    un error E_ERROR, tal y como pasa con
    abstract. Debe tenerse en cuenta que este cambio no afectará al código
    ya existente, ya que ninguno de estos modificadores tiene, en ningún caso, sentido
    en un contexto de interfaces.
   
En PHP 5.0 era posible redeclarar una función, en una clase derivada, que no coincidera con la declaración de esa misma función de la clase base, por ejemplo:
     Este código provocará un error E_STRICT en PHP 5.1.x.
    
<?php
class Base {
    function &return_by_ref() {
        $r = 1;
        return $r;
    }
}
class Derived extends Base {
    function return_by_ref() {
        return 1;
    }
}
?>
En PHP 5.0.x, el siguiente código era inválido:
     En PHP 5.1.x, si se redefine una constante de clase se lanzará un error fatal
     E_ERROR.
    
<?php
class test {
    const foobar = 'foo';
    const foobar = 'bar';
}
?>