Краткий обзор изменений в PHP 7.1
Обновленную версию php 7.1 многие ждали с нетерпением из-за багов старой версии, которые мешали нормальному программированию. Разберем самые главные изменения новой версии.
- Добавление возвращаемого “void” — Отныне возврат значения из метода или функции, помечаемой void, производит ошибки на уровне Fatal Error. Но сам void не разрешается применять, как тип к параметру. Следует учесть, что NULL при этом возвращать нельзя.
- Новый псевдотип “iterable” — Объединяет интерфейс traversable и ее тип array. Также добавляется функция is_iterable.
- Исправление ошибки при арифметических операциях — Актуальное исправление, при введении которого может повредится обратная связь приложения, если оно использует ошибки handlers для захвата предупреждений.
Также в обновление входят:
- Зарезервированы новые слова: void, iterable, при этом кодировка с интерфейсами, определенными классами и трейтами с этими названиями будет выдавать соответствующую ошибку.
- Изменения в php, которые выдавали критическую ошибку Fatal Error, также изменению подверглись ошибки при E_ERROR, которые теперь перебрасывают в исключения.
- Замена Warning предупреждения на ArgumentCountError при использовании функции или методе без передачи аргументов.
- Функции extract, compact, func_num_arg, parse_str (одноаргументная), mb_parse_str (одноаргументная) нельзя динамически использовать чрез: array_map и $func.
- Srand и rand функции в новом обновлении считаются псевдонимами к функции: mt_rand.
- Добавлена возможность проводит очистку старых сессий с помощью скриптов или функции session_gc.
- Автоматическая генерация валидного id без необходимости запуска новой сессии при помощи функции session_create_id.
- Ускорение генерации сессии id в 2 раза.
- Расширение mccrypt после обновления считается устаревшим и при попытке ее ввода будет выкидывать ошибку.
- Ввод новых функций: curl_share_strerror и curl_multi_errno.
Краткий анализ изменений в PHP 7.2
В последующем после PHP 7.1 обновлении php 7.2 имеют следующие изменения:
- Введение нового типа object использующегося в передаваемые параметрах и ковариантности различных объектов.
- Расширение файлов для загрузки подгружаемых файлов больше не. Разрешается использование расширений в файлах .ini и в функциях dl.
- Разрешение на перезагрузку абстрактных методов. Теперь их можно превзойти при условии наследования от иного абстрактного класса.
- Присвоение современной криптографической базе Sodium статуса основного расширения в PHP.
- Добавлена возможность для расширения строки PDO, что в конечном итоге открывает доступ для символов национальных наборов.
- Также для запросов в PDO предусматривается дополнительно настроенную информацию. Данная функция добавлена для осуществления вспомогательных действий в откладке подготовленных интерпелляций и включение будет осуществляться только при эмуляции особых заранее подготовленных запросов.
- Введена обновленная версия поддержки EXOP в расширении LDAP, что дает доступ к новым функциям и костантам.
- Для удобства реализации интерфейсов из неопределенных методов могут быть опущены. Благодаря контравариатности типов и соответствии LSP.
- Теперь можно ставить запятую в конце синтаксис группировки use.
- Поддержка float и double в функции pack и unpack.
Введение обновления php 7.2 пользуется большой популярностью во всевозможных приложениях, сайтах, форумах и блогах. Но огромный недостаток заключается в том, что нет абсолютно никакой совместимости между другими версиями.