Aunque la mayoría del código de PHP 5 existente debería funtionar sin cambios, se ha de tomar nota de algunos cambios incompatibles con versiones anteriores:
El soporte para Windows XP y 2003 ha sido eliminado. Las construcciones de PHP para Windows ahora requieren Windows Vista o superior.
Todas las comparaciones que no estiman las mayúsculas/minúsculas de funciones, clases y nombres de constantes, ahora se realizan de una manera independiente de la configuración regional según las reglas de ASCII. Esto mejora el soporte para idiomas que usan el alfabeto latino con reglas de cotejamiento no usuales, tales como el turco o el azerí.
Esto podría causar problemas para el código que usa comparaciones que no consideran las mayúsculas/minúsculas para caracteres distintos a los de ASCII en conjuntos de caracteres multibyte (incluyendo UTF-8), como carecteres acentuados en muchos idiomas europeos. Si se tiene un código base distinto del inglés y que no sea ASCII, será necesario probar que no se depende inadvertidamente de este comportamiento antes de utilizar PHP 5.5 para sistemas de producción.
Se introdujeron cambios en pack() y unpack() para hacerlos más compatibles con Perl:
Escribir código retrocompatible que use el código de formato "a" con unpack() requiere el uso de version_compare(), debido a la rotura de retrocompatibilidad.
Por ejemplo:
<?php
// Código anterior:
$data = unpack('a5', $packed);
// Código nuevo:
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
$data = unpack('Z5', $packed);
} else {
$data = unpack('a5', $packed);
}
?>
Antes de PHP 5.5, existían casos donde las palabras clave self, parent, y static eran tratadas de forma que consideraban las mayúsculas/minúsculas. Ahora se ha solucionado, y esta palabras clave siempre son manejadas para no considerarlas: SELF::CONSTANT ahora es tratada de forma idéntica a self::CONSTANT.
Los GUIDs que anteriormente resultaban en la generación de PHP de varios logos han sido eliminados. Esto incluye la eliminación de las funciones que devuelven esots GUIDs. Las funciones eliminadas son:
Los autores de extensiones debería observar que la función zend_execute() ya no puede ser sobrescrita, y que se han hecho numerosos cambios a la estructura execute_data y funciones y métodos relacionados que manejan códigos de operación.
A la mayoría de los autores de extensiones esto no les afecta, pero aquellos que escriban extensiones que dependan fuertemente del Motor Zend deberían leer las notas sobre estos cambios.