Краткий обзор изменений в PHP 7.1

Обновленную версию php 7.1 многие ждали с нетерпением из-за багов старой версии, которые мешали нормальному программированию. Разберем самые главные изменения новой версии.

  1. Добавление возвращаемого “void” — Отныне возврат значения из метода или функции, помечаемой void, производит ошибки на уровне Fatal Error. Но сам void не разрешается применять, как тип к параметру. Следует учесть, что NULL при этом возвращать нельзя.
  2. Новый псевдотип “iterable” — Объединяет интерфейс traversable и ее тип array. Также добавляется функция is_iterable.
  3. Исправление ошибки при арифметических операциях — Актуальное исправление, при введении которого может повредится обратная связь приложения, если оно использует ошибки 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 пользуется большой популярностью во всевозможных приложениях, сайтах, форумах и блогах. Но огромный недостаток заключается в том, что нет абсолютно никакой совместимости между другими версиями.