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 respecto a estas nuevas funcionalidades están documentadas dentro de la documentación de POO 5.

Versión Descripción
5.4.0 Cambiado: Si una clase abstracta define una firma para el constructor ahora se hará cumplir.
5.3.3 Cambiado: Los métodos con el mismo nombre que el último elemento de un nombre de clase perteneciente a un espacio de nombres ya no serán tratado como 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 $nombreclase::constante;). 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 lanza 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 error de nivel E_RECOVERABLE_ERROR.
5.1.3 Cambiado: En versiones anteriores de PHP 5, se consideraba obsoleto el uso de var y emitía un error de nivel E_STRICT. Ya no está obsoleto, y por tanto no emite el error.
5.1.0 Cambiado: Ahora se invoca al método estático __set_state() en las clases exportadas por var_export().
5.1.0 Añadido: Los métodos __isset() y __unset().


Clases y Objetos
PHP Manual