Cambios incompatibles hacia atrás
Convertir las claves numéricas de objetos y arrays
Las claves numéricas ahora se manejan mejor cuando se hacen arrays de objetos y
objetos en arrays (ya sea de un modo explícito o por
settype()).
Esto significa que las claves de números integer (o números integer en string) de los array que están siendo
lanzados a los objetos son ahora accesibles:
Y las claves de números enteros (o string de números enteros) de los objetos que están siendo
lanzados a los array son ahora accesibles:
No se permite pasar null
a get_class()
Anteriormente, pasar null
a la función get_class()
daría a conocer el nombre de la clase adjunta. Este comportamiento ya ha sido
eliminado, donde se emitirá un E_WARNING
en su lugar. Para
lograr el mismo comportamiento que antes, el argumento debe ser simplemente omitido.
Advertencia al contar los tipos no contables
Una advertencia E_WARNING
se emitirá ahora cuando se intente
contar (count()) tipos no contables (esto incluye la
función alias sizeof()).
Mover ext/hash de los recursos a los objetos
Como parte de la migración a largo plazo lejos de los recursos, la extensión Hash
se ha actualizado para utilizar objetos en lugar de recursos. El cambio debería ser perfecto para los
desarrolladores de PHP, excepto cuando
is_resource() ha hecho comprobaciones (que necesitará ser
actualizado a is_object() en su lugar).
Mejorar los valores por omisión de SSL/TLS
Se han hecho los siguientes cambios a los valores predeterminados:
-
tls://
ahora por omisión a TLSv1.0 o TLSv1.1 o TLSv1.2
-
ssl://
un alias de tls://
-
Las constantes
STREAM_CRYPTO_METHOD_TLS_*
por omisión a TLSv1.0
o TLSv1.1 + TLSv1.2, en lugar de sólo TLSv1.0
gettype() devolviendo valores en recursos cerrados
Anteriormente, usar gettype() en un recurso cerrado devolvería
un string de "unknown type"
. Ahora, un string de
"resource (closed)"
es devuelto.
is_object() y __PHP_Incomplete_Class
Anteriormente, usar is_object() en la clase
__PHP_Incomplete_Class devolvería false
.
Ahora, true
será devuelto.
Promover el nivel de error de las constantes no definidas
Las referencias no cualificadas a constantes no definidas generarán ahora una
advertencia E_WARNING
(en vez de una E_NOTICE
).
En la próxima versión principal de PHP, generarán
excepciones Error.
Soporte de Windows
Las versiones mínimas oficialmente soportadas de Windows son ahora Windows 7/Server
2008 R2.
Comprobación de los valores de propiedad predeterminados de los rasgos (traits)
Las comprobaciones de compatibilidad de los valores de propiedad de los rasgos
por omisión ya no se realizarán.
object
para los nombres de las clases
El nombre object
fue previamente reservado en PHP 7.0.
Esto ahora se ha reservado con fuerza, prohibiendo su uso como nombre de clase, rasgo
o nombre de interfaz.
Soporte de NetWare
El soporte para NetWare ha sido eliminado.
Mientras que array_unique() con SORT_STRING
antes copiaba el array y eliminaba los elementos no únicos (sin empaquetar
el array después), ahora se construye un nuevo array añadiendo
los elementos únicos. Esto puede dar lugar a diferentes índices numéricos.
Cambios con floats en la función bcmod()
La función bcmod() ya no trunca números fraccionarios
a números enteros. Como tal, su comportamiento ahora sigue
fmod(), en lugar del operador %
.
Por ejemplo bcmod('4', '3.5')
ahora devuelve
0.5
en lugar de 1
.
La opción de la función json_decode(),
JSON_OBJECT_AS_ARRAY
, es ahora usada si el segundo
parámetro (asociativo) es null
. Anteriormente,
JSON_OBJECT_AS_ARRAY
siempre fue ignorado.
secuencias generadas por rand() y
mt_rand() para una semilla específica puede diferir de PHP 7.1 en
máquinas de 64 bits (debido a la fijación de un error de sesgo de módulo en la
aplicación).
La eliminación de la configuración ini sql.safe_mode
La configuración ini sql.safe_mode
ha sido eliminada.