Список нововведений, несовместимостей и руководство по миграции можно посмотреть на сайте php.net, полный change log тоже доступен.
Язык / интерпретатор
Из наиболее интересных изменений в языке/интерпритаторе:
Trait (типажи)
Cм. мою статью на Хабре, я её также собираюсь обновить, так как в релизе появилось пару новых полезных возможностей).
Dereferencing (разыменование)
Появилось для array и объектов, проще объяснить на примере:
-
//array
function abc() {
return array('year' => 2012, 'month' => 12);
}
$year = abc()['year'];
//object
( new DateTime() )->format('d.m.Y H:i');
- //обратите внимание на скобки, без них так не сработает
Тестовый сервер
Для разработки нужд теперь можно поднимать тестовый веб-сервер, прямо из php command line. Хороший вариант для тех, кто ленится разворачивать у себя на Windows тестовую машину (для linux это проще).
Не вздумайте использовать в production.
Подробности в документации.
Короткая запись массива и хеш-массива
-
$a = ['title' => 'Yo', 'tags' => ['rap', 'yo']];
$b = array('title' => 'Yo', 'tags' => array('rap', 'yo'));
$a === $b; // => true
Примерно как Function.prototype.apply, Function.prototype.call в php.
Про это напишу подробнее когда-нибудь позже. Например, это позволит динамически "собирать" функциональность объектов.
Пока см. manual.
Стандартная библиотека
Из наиболее интересных изменений библиотеки:
- json_encode с флагом поддержки прямого unicode (без escape последовательностей, типа \u****, теперь просто в UTF-8) - позволит ускорить обработку таких json в браузере и формирование на сервере
- реализация объекта сессий (вместо набора кучи фукнций)
- новые SPL классы (а вы ещё не знаете/не используете SPL? Срочно читать manual).
Не совместимости
Большинство заметит только пару новых reserved words и удаленые древние фукнции:
session_is_registered(), session_register() и session_unregister().
Полный список.
Спасибо Вове А. за помощь в написании статьи.
Полный список.
Спасибо Вове А. за помощь в написании статьи.
Комментариев нет:
Отправить комментарий