Die neue PHP Version ist, außer vieler neuen implementierten Funktionalitäten durch Zend Engine 2 beträchtlich potenziert worden.
Die Plattformentwickler 
haben die Notwendigkeit der Kompatibilität zu den Applikationen und Script betrachtet, die für die vorhergehende Version verursacht worden sind, aber einige Unterschiede bezüglich der Maschine erfordern einige Änderungen im alten Code und einige Kniffe im Schreiben des Neuen. Direkt von den PHP-Stützseiten, verzeichnen wir die meisten wichtigen Aspekte: alle Link öffnen sich in einem neuen Fenster.

Inkompatible Änderungen (fonte completa, php.net)

• Es gibt neue reservierte Schlüsselwörter

• strrpos() und strripos() benutzen jetzt die Gesamtkette als Besuchsargumen.

•  Der ungültige Gebrauch der Schnüre verursacht E_ERROR anstelle von E_WARNING. Ein Beispiel des ungültigen Gebrauches ist:: $str = 'abc'; unset($str[0]);.
• array_merge() ist geändert worden, um nur Array anzunehmen. Wenn einer Variable geschickt wird, die nicht eine Array ist, ein E_WARNING für jeden Parameter gestartet. Geben Sie Acht, wie der Code anfangen kann, E_WARNING plötzlich zu senden.
• Der Server PATH_TRANSLATED Variable ist geändert worden: sehen Sie bitte auch die Beschreibung von $_SERVER['PATH_TRANSLATED'] in den Richtlinien.
• Ein Gegenstand ohne Eigenschaften ist nicht mehr als "leer" gehaltet.

• Einmal müssen die Kategorien vor ihrem Gebrauch erklärt werden. Er tritt auf, nur wenn Sie einige der neuen PHP 5 Eigenschaften benutzen (wie die Schnittstellten). Am Gegenteil ist das Verhalten das alte.

• get_class(), get_parent_class() und get_class_methods() sie bringen jetzt den Namen der Kategorien/ Methoden zurück, als sie (case-sensitive) erklärt werden; das kann kann Probleme in den alten Script holen, die auf dem vorhergehenden Verhalten basieren (der Name der Kategorie/Methoden wurde immer in Kleinbuchstaben zurückgebracht). Eine mögliche Lösung ist dass, Sie diese Funktionen in den Scrpt suchen und strtolower() benutzen. Diese Änderung an der Empfindlichkeit der Groß- und Kleinbuchstaben wendet auch auf die magischen vorherbestimmten Konstanten __CLASS__, __METHOD__, und __FUNCTION__ an. Die Werte werden genau zurückgebracht, wie sie genau erklärt werden (case-sensitive).
•  ip2long() es bringt jetzt FALSCHE zurück, wenn eine unzulässige IP-Adresse als Argument zur Funktion geführt wird, und nicht mehr -1.
• Wenn es definierte Funktionen in einer Include-Datei gibt, können diese in der Hauptdatei  verwendet werden, unabhängig von der Tatsache, dass sie vor return() oder nachher sind. Wenn die Datei ist zweimal eingeschlossen, PHP 5 strahlt einen blockierenden Fehler aus, weil die Funktionen bereits erklärt wurden. Wir raten include_once() zu benutzen, statt überzuprüfen, ob die Datei  bereitseingeschlossen ist,  und eine konditionierte in der Include-Datei zu tun.

Dazu:

- Es ist nicht möglich, $this wieder zuzuweisen: Das Beispiel hier unten läuft auf PHP4 (es zeigt " OK"), während es einen blockierenden Fehler ("fatal error") auf PHP5 produziert:


- Die Kommentare dem Code mit dieser Syntax sind nicht mehr erlaubt.

- Constructors und reference, achtung,  läuft das Beispiel hier unten auf PHP4, während eine Empfehlung E_NOTICE auf PHP5 produziert. In diesem Fall kann das Problem gelöst werden, indem man & entfernt

Neue Funktionen dazu in PHP5 sind vorhanden. Z.B., über die Behandlung von Array:

• array_combine() - Es verursacht ein Array,  indem es ein Array für Schlüssel und ein anderes für die Werte verwendet.
• array_diff_uassoc() - Es berechnet den Unterschied unter Array, die die Indizes durch eine Callback-Funktion steuern können, die vom Benutzer zur Verfügung gestellt wird.
• array_udiff() - Es berechnet den Unterschied unter Array, imdem es eine Callback-Funktion für den Datenvergleich  verwendet.
• array_udiff_assoc() - Es berechnet den Unterschied unter Array, die die Indizes steuern können. Die Werte werden durch das Benutzen einer Callback-Funktion vergleichen.
• array_udiff_uassoc() - Es berechnet den Unterschied unter Array, die die Indizes steuern können. Die Werte werden durch das Benutzen einer Callback-Funktion vergleichen. Das Überprüfen der Indezes wird durch eine Callback-Funktion getan.
• array_walk_recursive() - Es beantragt eine Benutzerfunktion rekursiv jedes Element einer Array.
• array_uintersect_assoc() - Es berechnet den Schnittpunkt von array, die die Indizes steuern können. Die Werte werden durch das Benutzen einer Callback-Funktion vergleichen.
• array_uintersect_uassoc() - Es berechnet den Schnittpunkt von array, die die Indizes steuern können. So wohl die Werte, als auch die Indezes werden durch das Benutzen einer Callback-Funktion vergleichen.
• array_uintersect() - Es berechnet den Schnittpunkt von array. Die Werte werden durch das Benutzen einer Callback-Funktion vergleichen.

Wenn Sie Applikationen von Dritten Teile, CSM, Portale Foren, bzw, benutzen, überzeugen Sie sich, dass die Applikation durch das Kontaktieren der Hilfe vom Mutterhaus der gesagten Applikation oder Script mit PHP5 kompatibel ist.