Переход с PHP 5.4.x на PHP 5.5.x
PHP Manual

Изменения, ломающие обратную совместимость

Несмотря на то, что практически весь существующий код не заметит перехода, все же следует обратить внимание на некоторые изменения, ломающие обратную совместимость:

Прекращена поддержка Windows XP и 2003

Прекращена поддержка Windows XP и 2003. Сборки под Windows теперь требуют минимум Windows Vista.

Регистронезависимость теперь является зависимой от локали

Все регистронезависимые сравнения для функций, классов и имен констант теперь реализованы независимым от локали образом в соответствии с правилами ASCII. Это улучшает поддержку языков, использующих латинский алфавит с необычными правилами сравнения, например, турецкий и азербайджанский.

Это изменение может вызвать проблемы в коде, использующем регистронезависимое сравнение для не-ASCII символов в многобайтовых кодировках (включая UTF-8), такие как акцентированные символы во многих европейских языках. Если у вас в кодовой базе используются не английские, не ASCII-символы, обратите особое внимание на это изменение перед миграцией промышленных сред на PHP 5.5.

Изменения pack() и unpack()

Функции 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);
}
?>

self, parent и static теперь всегда регистронезависимы

До PHP 5.5, были случаи, когда ключевые слова self, parent, и static обрабатывались регистрозависимо. Эта проблема была исправлена, и теперь эти слова всегда обрабатываются регистронезависимо: SELF::CONSTANT теперь всегда идентично self::CONSTANT.

Удалены GUID логотипов PHP

GUID (внутренние идентификаторы изображения) использовавшиеся ранее для вывода различных логотипов PHP теперь удалены. Также удалены функции, которые позволяли их получать. Удаленные функции:

Изменения внутреннего исполнения

Авторы расширений должны обратить внимание, что функция zend_execute() больше не может быть переопределена, и что некоторое количество изменений внесено в структуру execute_data и в работающие с ней функции и методы обработки байт-кода.

Большинство авторов расширений вряд ли будут затронуты, но те, кто пишет расширения, сильно затрагивающие движок Zend, должны ознакомиться с замечаниями по этому изменению.


Переход с PHP 5.4.x на PHP 5.5.x
PHP Manual