Although most existing PHP 5 code should work without changes, please take note of some backward incompatible changes:
Previously, arrays declared as class properties which mixed explicit and implicit keys could have array elements silently overwritten if an explicit key was the same as a sequential implicit key. For example:
<?php
class C {
const ONE = 1;
public $array = [
self::ONE => 'foo',
'bar',
'quux',
];
}
var_dump((new C)->array);
?>
Salida del ejemplo anterior en PHP 5.5:
array(2) { [0]=> string(3) "bar" [1]=> string(4) "quux" }
Salida del ejemplo anterior en PHP 5.6:
array(3) { [1]=> string(3) "foo" [2]=> string(3) "bar" [3]=> string(4) "quux" }
json_decode() now rejects non-lowercase variants of the
JSON literals true
, false
and
null
at all times, as per the JSON specification, and
sets json_last_error() accordingly. Previously, inputs
to json_decode() that consisted solely of one of these
values in upper or mixed case were accepted.
This change will only affect cases where invalid JSON was being passed to json_decode(): valid JSON input is unaffected and will continue to be parsed normally.
Todos los flujos encriptados de clientes ahora habilitan la verificación del par por omisión. De manera predeterminada se usará el paquete de CA predeterminado de OpenSSL para verificar el certificado del par. En la mayoría de los casos no será necesario realizar ningún cambio para comunicarse con servidores que posean certificados SSL válidos, ya que los distribuidores generalmente configuran OpenSSL para que emplee paquetes de CA bien conocidos.
El paquete de CA podría ser sobrescrito globalmente estableciendo
la opción de configuración openssl.cafile u openssl.capath, o en función de
cada petición, usando las opciones de contexto
cafile
o
capath
.
Aunque no se recomienda en general, es posible deshabilitar la verificación
del certificado del par para una petición estableciendo la opción de contexto
verify_peer
a false
, y para deshabilitar la validación del nombre del par estableciendo
a false
la opción de contexto
verify_peer_name
.
GMP resources are now objects. The functional API implemented in the GMP extension has not changed, and code should run unmodified unless it checks explicitly for a resource using is_resource() or similar.
mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() and mcrypt_ofb() will no longer accept keys or IVs with incorrect sizes, and block cipher modes that require IVs will now fail if an IV isn't provided.