Obwohl der meiste bestehende PHP 5 Code ohne Änderungen funktionieren sollte, sind ein paar Änderungen zu beachten, die nicht abwärtskompatibel sind:
Bisher konnten Elemente von Arrays, welche als Klasseneigenschaften mit expliziten und impliziten Schlüsseln definiert waren, überschrieben werden, wenn ein expliziter Schlüssel gleich mit einem sequenziellen impliziten Schlüssel war.
<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}
var_dump((new C)->array);
?>Das oben gezeigte Beispiel erzeugt mit PHP 5.5 folgende Ausgabe:
array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}
Das oben gezeigte Beispiel erzeugt mit PHP 5.6 folgende Ausgabe:
array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}
   json_decode() weist nun nicht vollständig in
   Kleinbuchstaben geschriebene Varianten von true, 
   false und null gemäß der
   JSON-Spezifikation zurück, und setzt 
   json_last_error() dementsprechend. Bisher wurden
   auch Eingaben, die nur aus einem dieser Werte bestanden, mit
   Großbuchstaben akzeptiert.
  
Diese Änderung hat nur Einfluss auf Fälle in denen ungültiges JSON an json_decode() übergeben wurde. Gültiges JSON ist davon nicht betroffen und wird weiterhin normal verarbeitet.
Alle verschlüsselten Clientstreams verifizieren nun standardmäßig den Kommunikationspartner. Standardmäßig wird dafür das Standard-CA-Bundle von OpenSSL zur Verifikation des Peer-Zertifikates herangezogen. In den meisten Fällen sind keine Änderungen notwendig, um mit Servern mit gültigen SSL-Zertifikaten zu kommunizieren, da Distributoren üblicherweise OpenSSL mit vertrauenswürdigen CA-Bundles konfigurieren.
    Das Standard-CA-Bundle kann global durch eine Änderung der
    konfigurationseinstellungen openssl.cafile oder openssl.capath
    überschrieben werden, oder für einzelne Requests durch die
    Verwendung der Kontextoptionen
    cafile oder
    capath.
   
    Obwohl dies generell nicht empfehlenswert ist, kann die Verifikation
    der Peer-Zertifikate für einzelne Requests ausgeschaltet werden, indem
    die Kontextoption
    verify_peer
    auf false gesetzt wird. Die Verifikation des Peer-Namen kann durch
    das Setzen von
    verify_peer_name
    verify_peer_name
    auf false ausgeschaltet werden.
   
GMP-Ressourcen sind nun Objekte. Die funktionale API der GMP-Erweiterung hat sich nicht geändert und Code sollte ohne Änderungen funktionieren, es sei denn dieser prüft explizit auf eine Ressource mittels is_resource() oder Ähnlichem.
mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() und mcrypt_ofb() akzeptieren nicht länger Schlüssel oder IVs mit falscher Länge, und Blockschlüssel, die IVs benötigen, schlagen nun fehl, wenn kein IV übergeben wurde.
