Обратно несовместимые изменения
  
   Хотя большая часть существующего кода PHP 5 должна работать без изменений,
   пожалуйста, примите к сведению следующие обратно несовместимые изменения:
  
  
   - 
    
     Новый внутренний API разбора параметров был применен во всех
     расширениях, идущих в комплекте с PHP 5.3.x. Этот API разбора параметров требует
     от функций возвращать NULLпри передаче несовместимых параметров. Есть
     некоторые исключения из этого правила, например, функция get_class(),
     которая будет продолжать возвращатьFALSEв случае ошибки.
- 
    
     clearstatcache() больше не очищает кэш функции realpath по
     умолчанию.
    
   
- 
    
     Функция realpath() стала полностью независима от платформы.
     Следствием этого является то, что некорректные относительные пути, такие как
     __FILE__ . "/../x" более не работают.
    
   
- 
    
     Семейство функций call_user_func() стало использовать
     $this даже если вызываемая функция - это родительский класс.
    
   
- 
    
     Функции работы с массивами natsort(),
     natcasesort(), usort(),
     uasort(), uksort(),
     array_flip() и array_unique() больше
     не принимают объекты в качестве аргументов. Для применения этих функций к
     объекту необходимо сначала привести его к типу array.
    
   
- 
    
     Поведение функций при передаче параметров по значению, в которых параметры передаются по ссылке,
     было изменено. Там, где прежде функция принимала параметр по значению, сейчас генерируется
     фатальная ошибка. Любой прежний код, который передает константы или значения в качестве
     параметров функциям, которые ожидают ссылки, необходимо будет изменить, чтобы
     присвоить значение переменной перед вызовом функции.
    
   
- 
    
     Новая библиотека mysqlnd требует применения нового 41-го байтного формата пароля,
     который был введен в MySQL 4.1. Если вы продолжаете использовать 16-ти байтные пароли,
     это будет вынуждать функции mysql_connect() и подобные ей генерировать
     ошибку "mysqlnd cannot connect to MySQL 4.1+ using old
     authentication."
    
   
- 
    
     Новая библиотека mysqlnd не читает конфигурационные файлы mysql (my.cnf/my.ini),
     как это делает старая библиотека libmysqlclient. Если ваш код использует настройки в
     конфигурационном файле, вы можете загрузить их явно с помощью функции
     mysqli_options(). Обратите внимание, что это означает, что
     константы PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILEиPDO::MYSQL_ATTR_READ_DEFAULT_GROUPне определены, если
     MySQL не компилировался с поддержкой mysqlnd.
- 
    
     Завершающий символ "/" был удален из класса SplFileInfo
     и других связанных с ним классов каталогов.
    
   
- 
    
     Магический метод __toString()
     не принимает более аргументы.
    
   
- 
    
     Магические методы
     __get(),
     __set(),
     __isset(),
     __unset(), и
     __call() должны всегда
     быть публичными и не могут быть статическими. Сигнатуры методов теперь стали более строгими.
    
   
- 
    
     Магический метод __call()
     теперь вызывается при доступе к приватным и защищенным методам.
    
   
- 
    
     func_get_arg(), func_get_args() и
     func_num_args() теперь не могут быть вызваны
     извне зоны видимости файла, который включается директивой
     include или require из
  функции в вызывающем файле.
    
   
- 
    
     Добавлен слой эмуляции расширения MHASH, чтобы служить оберткой
  вокруг расширения Hash. Однако не все алгоритмы покрыты,
  в их числе и алгоритм s2k хэширования. Это означает,
  что алгоритм s2k хэширования больше недоступен в пакете PHP 5.3.0.
    
   
   Следующие ключевые слова теперь являются зарезервированными и не могут
   использоваться в качестве названия функции, класса и прочих имен.