Несмотря на то, что практически весь существующий код не заметит перехода, все же следует обратить внимание на некоторые изменения, ломающие обратную совместимость:
Прекращена поддержка Windows XP и 2003. Сборки под Windows теперь требуют минимум Windows Vista.
Все регистронезависимые сравнения для функций, классов и имен констант теперь реализованы независимым от локали образом в соответствии с правилами ASCII. Это улучшает поддержку языков, использующих латинский алфавит с необычными правилами сравнения, например, турецкий и азербайджанский.
Это изменение может вызвать проблемы в коде, использующим регистронезависимое сравнение для не ASCII символов в многобайтовых кодировках (включая UTF-8), такие как акцентированные символы во многих европейских языках. Если у вас в кодовой базе используются не английские, не ASCII-символы, обратите особое внимание на это изменение перед миграцией промышленных сред на PHP 5.5.
Функции pack() и unpack() были изменены так, чтобы они стали более совместимы с Perl:
Написание обратно совместимого кода, использующего код формата "a" в функции unpack(), потребует использования функции version_compare(), иначе обратная совместимость поломается.
Пример:
<?php
// Старый код:
$data = unpack('a5', $packed);
// Новый код:
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
$data = unpack('Z5', $packed);
} else {
$data = unpack('a5', $packed);
}
?>
До PHP 5.5 были случаи, когда ключевые слова self, parent и static обрабатывались с учетом регистра. Эта проблема была исправлена, и теперь эти слова всегда обрабатываются регистронезависимо: SELF::CONSTANT теперь всегда идентично self::CONSTANT.
GUID (внутренние идентификаторы изображения), использовавшиеся ранее для вывода различных логотипов PHP, теперь удалены. Также удалены функции, которые позволяли их получать. Удаленные функции:
Авторы расширений должны обратить внимание, что функция zend_execute() больше не может быть переопределена, и что некоторое количество изменений внесено в структуру execute_data и в работающие с ней функции и методы обработки байт-кода.
Большинство авторов расширений вряд ли будут затронуты, но те, кто пишет расширения, сильно затрагивающие движок Zend, должны ознакомиться с замечаниями по этому изменению.