Інші зміни

Зміни у модулях SAPI

Apache2Handler

Модуль PHP був перейменований з php7_moduleвphp_module

Змінені функції

Reflection

Результати ReflectionClass::getConstants() і ReflectionClass::getReflectionConstants() тепер можна фільтрувати за допомогою нового параметра filter. Додано три нові константи для роботи з ним:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Стандартні функції

Математичні функції abs() ceil() floor() і round() тепер правильно враховують оголошення strict_type. Раніше вони наводили перший аргумент до числового значення навіть у режимі суворої типізації.

Zip

Інші зміни у модулях

CURL

  • Для роботи модуля CURL тепер потрібно щонайменше libcurl 7.29.0.

  • Застарілий параметрversion функції curl_version()був видалений.

дата та час

DatePeriod тепер реалізує IteratorAggregate (замість Traversable

DOM

DOMNamedNodeMap і DOMNodeListтеперь реализуютIteratorAggregate (замість Traversable

Intl

IntlBreakIterator і ResourceBundleтеперь реализуютIteratorAggregate (замість Traversable

Enchant

Модуль enchant тепер використовує libenchant-2 за замовчуванням, якщо це можливо. libenchant версії 1 все ще підтримується, але застарілий і може бути вилучений у майбутньому.

GD

  • Параметрnum_pointsдляimagepolygon() imageopenpolygon() і imagefilledpolygon()тепер необов'язковий, тобто ці функції можуть бути викликані за допомогою трьох або чотирьох параметрів. Якщо параметр опущено, він розраховується якcount($points)/2

  • Добавлена функцияimagegetinterpolation()для одержання поточного методу інтерполяції.

JSON

Модуль JSON більше не можна відключити, тепер він є невід'ємною частиною будь-якої збірки PHP, як і модуль date.

MBString

Таблиці даних Unicode оновлено до версії 13.0.0.

PDO

PDOStatement тепер реалізує IteratorAggregate (замість Traversable

LibXML

Мінімальна необхідна версія libxml – 2.9.0. Це означає, що завантаження зовнішніх об'єктів за замовчуванням тепер вимкнуто і тому не потрібні додаткові кроки для захисту від XXE-атак.

MySQLi / PDO MySQL

  • Якщо mysqlnd не використовується (це варіант за промовчанням і рекомендується), мінімальна підтримувана версія libmysqlclient тепер 5.5.

  • mysqli_result тепер реалізує IteratorAggregate (замість Traversable

PGSQL / PDO PGSQL

Для модулів PGSQL та PDO PGSQL тепер потрібно як мінімум libpq 9.1.

Readline

Виклик readline_completion_function() перед запуском інтерактивної підказки (наприклад, auto_prepend_file) тепер скасовує функцію завершення інтерактивної підказки за промовчанням. Раніше readline_completion_function() працювала лише під час виклику після запуску інтерактивної підказки.

SimpleXML

SimpleXMLElement тепер реалізує RecursiveIterator і включає функціонал SimpleXMLIterator. . SimpleXMLIterator є порожнім розширенням SimpleXMLElement

Зміни в обробці INI-файлів

  • com.dotnet_version - це нова INI-директива для вибору версії платформи .NET, яка використовуватиметься для об'єктівdotnet

  • zend.exception_string_param_max_len - це нова INI-директива для встановлення максимальної довжини рядка у аргументі рядкового трасування стека.

EBCDIC

Цілі EBCDIC більше не підтримуються, хоча малоймовірно, що вони досі працювали.

Продуктивність

  • Компілятор Just-In-Time (JIT) був доданий у модуль opcache.

  • array_slice()у масиві без відстані між елементами більше не скануватиме весь масив, щоб знайти початкове зміщення. Це може значно скоротити час виконання функції з великими зсувами та малою довжиною.

  • strtolower()тепер використовує реалізацію SIMD у локалі"C" LC_CTYPE(яка використовується за замовчуванням).