Найбільш цікаві зміни:
- Значне збільшення продуктивності. Наприклад, при порівнянні одного з снапшоти php 5.3 та останнього стабільного релізу, було відмічено збільшення продуктивності Drupal на 20%, Qdig на 2%, typo3 на 30%, wordpress на 15%, xoops - на 10%.
- Namespaces - ізольовані від решти коду простору імен для класів, функцій і констант.
- Late static binding" - прив'язка до виклику класу, поза контекстом спадкування (можливість отримати ім'я класу, викликаного для виконання статичного методу).
- Mysqlnd - новий MySQL драйвер, що працює безпосередньо з MySQL, без використання libmysql.
- Зі складу пакету видалений модуль ext / msql, ext / ereg позначений як застарілий, ext / mhash замінений на ext / hash.
- Реалізований метод __callStatic для організації перевантаження статичних методів.
- Підтримка OpenID.
- Зміна техніки округлення чисел з плаваючою крапкою.
- Можливість визначення в ini-файлі блоків конфігурації з прив'язкою до директорії і імені хоста, для отримання функціональності подібної ".htaccess".
- XSLT профайлінг.
- Багатоплатформенний getopt ().
- Підтримка Sqlite3 (розширення ext/sqlite3).
- Опціональний garbage, що прибирає сміття.
- Новий синтаксис для визначення строкових блоків, обмежена підтримка GOTO, оператор "?:".
- Нові розширення: ext / phar, ext / intl, ext / fileinfo, ext / enchant.
- Підтримка замикань і лямбда-функцій.
- Можливість ведення докладного журналу відправки пошти через функцію mail (), що корисно для виявлення джерела спаму в системах хостингу, на яких нерідко намагаються розсилати пошту через зламані скрипти користувачів. Крім ведення логу передбачена можливість включення в тіло листа заголовка з уточненням з якого саме скрипта і від якого користувача здійснена відправка.
- Більше 140 виправлень помилок.
Також є відчутні зміни в роботі вже існуючих функцій та методів:
- Опції natsort (), natcasesort (), usort (), uasort (), uksort (), array_flip () і array_unique () більше не підтримують об'єкти як аргументи. Якщо вам потрібно працювати з об'єктами - вам доведеться перевести їх в масиви.
- Висновок var_dump тепер включає приватні члени.
- session_start повертає false, якщо старт сесії зазнав невдачі.
- clearstatcache не очищає realpath cache за замовчуванням.
- call_user_func () тепер передає $ this, навіть якщо викликає - є батьківський клас.
- opendir (), scandir () та dir () тепер використовую контекст по замовчуванню, якщо контекст не переданий їм як аргумент.
- Додана підтримка рідних функцій asinh (), acosh (), atanh (), log1p () і expm1 ().
- Stream wrappers тепер можуть бути використані як include_path ().
- Магічні методи get (), set (), isset (), unset () і call () тепер завжди повинні бути public та більше не можуть бути static
- toString () більше не може приймати аргументи.
- Введено новий магічний метод callStatic () та параметр previous в Exception:: construct ().
- SplObjectStorage тепер має підтримку ArrayAccess. Це так само дозволяє зберігати асоціативну інформацію з об'єктами в SplObjectStorage.
- ereg-функції викликають E_DEPRECATED, користуйтеся PCRE
- is_a () - більше не є DEPRECATED (застарілої)
- Наступні ini-директиви викликають E_DEPRECATED при старті
- Define_syslog_variables - Register_globals - Register_long_arrays - Safe_mode - Magic_quotes_gpc - Magic_quotes_runtime - Magic_quotes_sybase
PHP не може бути зібраний без PCRE, Reflection, SPL PHP не може бути зібраний без підтримки FastCGI CGI / FastCGI підтримують php.ini-файли в стилі. Htaccess (тобто per-dir) - директиви ini-файлу zend_extension_debug і zend_extension_ts замінені на zend_extension
- zend.ze1_compatibility_mode видалена і викликає E_ERROR
- Додано новий користувацький механізм ініціалізації і конфігураційні змінні user_ini.filename і user_ini.cache_ttl
Спеціальні секції в іні-файлах - [PATH = / opt / httpd / www.example.com /] і [HOST = www.example.com].
- Директиви визначені в цих секціях не можуть бути переписані користувацькими ini-файлами
- директива ini-файлу extension тепер може приймати повні шляхи
- значення по замовчуванню session.use_only_cookies змінено на 1
NOWDOC - те ж, що і HEREDOC, але з одинарними лапками навколо позначки «<'LABEL' У цьому релізі також зроблена робота з уніфікації внутрішнього API мови. |