Los cambios del modelo de objetos de PHP se recogen aquí. Más información y otras notas pueden encontrarse en la documentación sobre POO en PHP.
Versión | Descripción |
---|---|
8.4.0 | Adición: Soporte para los hooks de propiedad. |
8.4.0 | Adición: Soporte de los objetos perezosos. |
8.1.0 | Adición: Soporte para el modificador final para las constantes de clase. Además, las constantes de interfaces pueden ser redefinidas por omisión. |
8.0.0 | Adición: Soporte del operador nullsafe ?-> para acceder a las propiedades y métodos sobre objetos que pueden ser null. |
7.4.0 | Cambio: Es ahora posible lanzar excepciones dentro de __toString(). |
7.4.0 | Adición: Soporte limitado para la covarianza del tipo de retorno y contravarianza para el tipo de argumento. Soporte completo de varianza está únicamente disponible si el autocargado es utilizado. Dentro de un fichero único solo las referencias no-cíclicas de tipo son posibles. |
7.4.0 | Adición: Es ahora posible tipar las propiedades de clase. |
7.3.0 | Incompatibilidad: El desempaquetado de argumento de Traversables con claves no-intes ya no es soportado. Este comportamiento no estaba previsto y por consiguiente fue eliminado. |
7.3.0 | Incompatibilidad: En versiones anteriores era posible separar las propiedades estáticas asignando una referencia. Esto ha sido eliminado. |
7.3.0 |
Cambio: El operador
instanceof permite ahora literales como primer
operando, en este caso el resultado es siempre false .
|
7.2.0 | Obsoleto: El método __autoload() ha sido declarado obsoleto en favor de spl_autoload_register(). |
7.2.0 |
Cambio: El siguiente nombre no puede ser utilizado para nombrar
clases, interfaces o traits: object .
|
7.2.0 | Cambio: Una coma colgante puede ahora ser añadida a la sintaxis use agrupada para los espacios de nombres. |
7.2.0 | Cambio: Ampliación del tipo de los parámetros. El tipo de los parámetros de los métodos reescritos y de implementación de interfaz puede ahora ser omitido. |
7.2.0 | Cambio: Los métodos abstractos pueden ahora ser reescritos cuando una clase abstracta extiende otra clase abstracta. |
7.1.0 |
Cambio: Los siguientes nombres no pueden ser utilizados para nombrar
clases, interfaces o traits: void
y iterable .
|
7.1.0 | Adición: Es ahora posible definir la visibilidad de las constantes de clase. |
7.0.0 | Obsoleto: Llamada estática a métodos que no están declarados como estáticos. |
7.0.0 | Obsoleto: Constructor estilo PHP 4. Es decir, los métodos que tienen el mismo nombre que la clase en la que están definidos. |
7.0.0 | Adición: Declaración use agrupada: las clases, funciones y constantes que son importadas desde un mismo espacio de nombres pueden ahora ser agrupadas juntas en una sola declaración use. |
7.0.0 |
Adición: Soporte para las
clases anónimas
ha sido añadido gracias a new class .
|
7.0.0 | Incompatibilidad: Iterar sobre un object no- Traversable tendrá ahora el mismo comportamiento que iterar sobre los arrays por referencia. |
7.0.0 | Cambio: La definición de propiedades (compatibles) en dos traits utilizados ya no provoca un error. |
5.6.0 | Adición: El método __debugInfo(). |
5.5.0 | Adición: La constante mágica ::class. |
5.5.0 | Adición: finally para manejar las excepciones. |
5.4.0 | Adición: traits. |
5.4.0 | Cambio: Si una clase abstracta define una firma para el constructor , esta será ahora aplicada. |
5.3.3 | Cambio: Los métodos con el mismo nombre que el último elemento en un espacio de nombres ya no son considerados como un constructor. Este cambio no afecta a las clases sin espacio de nombres. |
5.3.0 | Cambio: Las clases que implementan una interfaz con métodos que tienen valores por omisión definidos en sus prototipos ya no están obligadas a respetar los valores por omisión definidos en la interfaz. |
5.3.0 |
Cambio: Es ahora posible referenciar una clase utilizando una variable (e.g. :
echo $classname::constant; ).
El valor de la variable no puede ser una palabra clave (e.g. :
self ,
parent o static ).
|
5.3.0 |
Cambio: Un error de nivel E_WARNING es emitido si los métodos mágicos de
sobrecarga son
declarados como estáticos.
La visibilidad pública también es requerida.
|
5.3.0 | Cambio: Anteriormente a 5.3.0, las excepciones lanzadas en la función __autoload() no podían ser tratadas en un bloque catch y resultaban en un error fatal. Ahora, las excepciones lanzadas en la función __autoload pueden ser capturadas en un bloque catch y tratadas. Si una excepción personalizada es lanzada, entonces su clase debe estar disponible. La función __autoload puede ser utilizada recursivamente para autocargar la clase de excepción personalizada. |
5.3.0 | Adición: El método __callStatic. |
5.3.0 | Adición: heredoc y nowdoc son soportadas para definir las constantes de clases y las propiedades. Nota: Los valores heredoc deben seguir las mismas reglas que los string rodeados de comillas dobles (e.g. sin variables dentro). |
5.3.0 | Adición: Resolución Estática Tardía. |
5.3.0 | Adición: El método __invoke(). |
5.2.0 |
Cambio: El método __toString()
solo era llamado en llamadas a echo o
print.
Ahora, es llamado en cualquier contexto de string
(e.g. en printf() con el modificador
%s ) pero no en otros contextos (e.g. con
el modificador %d ).
A partir de PHP 5.2.0, convertir un object sin método
__toString en string
emite un error E_RECOVERABLE_ERROR .
|
5.1.3 |
Cambio: En versiones anteriores de PHP 5, el uso de
var era considerado obsoleto y emitía un error E_STRICT . Ya no es el caso.
|
5.1.0 | Cambio: El método estático __set_state() es ahora llamado para las clases exportadas vía var_export(). |
5.1.0 | Adición: Métodos __isset() y __unset(). |