Aunque la mayoría del código PHP 5 existente debería funcionar sin ninguna modificación, debe tener en cuenta algunas incompatibilidades ascendentes:
Anteriormente, los arreglos declarados como propiedades de clase que mezclaban claves explícitas e implícitas podían ver sus elementos sobrescritos sin advertencia si una clave explícita era idéntica a una clave secuencial implícita. Por ejemplo:
<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}
var_dump((new C)->array);
?>Resultado del ejemplo anterior en PHP 5.5:
array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}
Resultado del ejemplo anterior en PHP 5.6:
array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}
   json_decode() ahora rechaza las variantes no escritas en
   minúscula de los literales JSON true,
   false y null, de acuerdo con la
   especificación JSON, y json_last_error() se informa en
   consecuencia. Anteriormente, los valores pasados a
   json_decode() que contenían alguno de estos valores en
   mayúsculas o en una combinación de mayúsculas y minúsculas eran aceptados.
  
Este cambio solo afectará a los casos en los que se pase JSON inválido a json_decode(): el JSON válido no se verá afectado y se analizará normalmente.
Todos los flujos clientes cifrados activan ahora la verificación por pares por omisión. Por omisión, esto utilizará el CA OpenSSL por omisión para verificar el par de certificados. En la mayoría de los casos, no se necesita realizar ninguna modificación para comunicarse con servidores y certificados SSL válidos, sabiendo que los distribuidores configuran generalmente OpenSSL para utilizar los CA conocidos.
    El CA por omisión puede ser sobrescrito a nivel global utilizando las
    opciones de configuración openssl.cafile o openssl.capath, o mediante una solicitud
    básica utilizando las opciones de contexto
    cafile o
    capath.
    Aunque no se recomienda en general, es posible desactivar la
    verificación de certificados por pares para una solicitud definiendo la
    opción de contexto verify_peer
    a false, y para desactivar la validación del nombre de los pares, configurando
    la opción de contexto
    verify_peer_name
    a false.
Los recursos GMP ahora son objetos. La API de la extensión GMP no ha cambiado y el código existente debería continuar funcionando sin modificación a menos que se realice una verificación explícita usando is_resource() o equivalente.
mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() y mcrypt_ofb() ya no aceptan claves o vectores de inicialización (IVs) de tamaños incorrectos, y los modos de cifrado por bloques que requieren IVs fallarán ahora si no se proporciona un IV.
