Інші зміни
Зміни у модулях 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
-
Методи ZipArchive::addGlob() і ZipArchive::addPattern()набувають нових значень у масиві параметрів
options
:flags
comp_method
comp_flags
env_method
enc_password
-
У методовZipArchive::addEmptyDir() ZipArchive::addFile() і ZipArchive::addFromString()додано новий параметр
flags
. За допомогою нього можна керувати кодуванням імені (ZipArchive::FL_ENC_*
) та заміною запису (ZipArchive::FL_OVERWRITE
-
ZipArchive::extractTo()Тепер відновлює час модифікації файлу.
Інші зміни у модулях
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
(яка використовується за замовчуванням).