Clases y Objetos
PHP Manual

Registro de cambios de POO

Aquí se registran los cambios del modelo de POO de PHP 5. Las descripciones, y otras notas, de estas nuevas funcionalidades están documentadas dentro del apartado de POO.

Versión Descripción
5.3.3 Cambiado: Ya no se trata a los métodos que tengan el mismo nombre que el último elemento de una clase con espacio de nombrescomo a un constructor. Este cambio no afecta a las clases que no pertenecen a un espacio de nombres.
5.3.0 Cambiado: Ya no es necesario que los valores por omisión de los métodos de una clase que implemente un interfaz coincidan con los valores por omisión de los prototipos de la interfaz.
5.3.0 Cambiado: Ahora es posible hacer referencia a la clase utilizando una variable (p.ej., echo $classname::constant;). La variable no puede contener como valor una palabra clave (p.ej., self, parent o static).
5.3.0 Cambiado: Se emite un error de nivel E_WARNING si al sobrecargar un método mágico, se le declara como estático. Además, hace necesario que tengan visibilidad pública.
5.3.0 Cambiado: Antes de 5.3.0, las excepciones lanzadas en la función __autoload no podían capturarse en el bloque catch, y provocaban un error fatal. Ahora, las excepciones lanzadas dentro de la función __autoload pueden capturarse en el bloque catch, con una única salvedad. Si se disparara una excepción definida por el usuario, entonces esta excepción debería estar disponible. Se puede utilizar recursivamente la función __autoload para cargar automáticamente la clase de la excepción definida por el usuario.
5.3.0 Añadido: El método __callStatic.
5.3.0 Añadido: Soporte heredoc y nowdoc para constantes de clase y definición de propiedades. Nota: los valores heredoc deben seguir las mismas reglas que las cadenas de dobles comillas (p.ej., no contener variables).
5.3.0 Añadido: Enlaces estáticos en tiempo de ejecución.
5.3.0 Añadido: El método __invoke.
5.2.0 Cambiado: Al método __toString sólo se le invocaba cuando se le combinaba con echo() o con print(). Pero ahora, se le invoca en cualquier contexto de strings (p.ej, en printf() con el modificador %s) pero no en contextos de otro tipo (p.ej. con el modificador %d). Desde PHP 5.2.0, convertir objetos a string sin el método __toString emitirá un E_RECOVERABLE_ERROR.
5.1.3 Cambiado: En versiones anteriores de PHP 5, se consideraba obsoleto el uso de var y emitiría un error de nivel E_STRICT. Ya no está obsoleto, y por tanto no emite el error.
5.1.0 Cambiados: Ahora se invoca al método estático __set_state en las clases exportadas por var_export().
5.1.0 Añadidos: Los métodos __isset y __unset.


Clases y Objetos
PHP Manual