Модуль PHP был переименован из php7_module
в
php_module
.
Результаты ReflectionClass::getConstants() и
ReflectionClass::getReflectionConstants() теперь можно
фильтровать с помощью нового параметра filter
.
Добавлены три новые константы для работы с ним:
ReflectionClassConstant::IS_PUBLIC
ReflectionClassConstant::IS_PROTECTED
ReflectionClassConstant::IS_PRIVATE
Математические функции abs(), ceil(),
floor() и round()
теперь правильно учитывают
объявление strict_type
.
Ранее они приводили первый аргумент к числовому значению даже в режиме строгой типизации.
Методы 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 теперь требуется как минимум libcurl 7.29.0.
Устаревший параметр version
функции curl_version()
был удалён.
DatePeriod теперь реализует IteratorAggregate (вместо Traversable).
DOMNamedNodeMap и DOMNodeList теперь реализуют IteratorAggregate (вместо Traversable).
IntlBreakIterator и ResourceBundle теперь реализуют IteratorAggregate (вместо Traversable).
Модуль enchant теперь использует libenchant-2 по умолчанию, если возможно. libenchant версии 1 все ещё поддерживается, но устарел и может быть удалён в будущем.
Параметр num_points
для imagepolygon(),
imageopenpolygon() и imagefilledpolygon() теперь
является необязательным, то есть эти функции могут быть вызваны с помощью трёх или четырёх параметров. Если параметр опущен,
он рассчитывается как count($points)/2
.
Добавлена функция imagegetinterpolation() для получения текущего метода интерполяции.
Модуль JSON больше нельзя отключить, теперь он является неотъемлемой частью любой сборки PHP, как и модуль date.
Таблицы данных Unicode обновлены до версии 13.0.0.
PDOStatement теперь реализует IteratorAggregate (вместо Traversable).
Минимальная необходимая версия libxml - 2.9.0. Это означает, что загрузка внешних объектов по умолчанию теперь отключена и поэтому не требуется дополнительных шагов для защиты от XXE-атак.
Если mysqlnd не используется (это вариант по умолчанию и рекомендуется), минимальная поддерживаемая версия libmysqlclient теперь 5.5.
mysqli_result теперь реализует IteratorAggregate (вместо Traversable).
Для модулей PGSQL и PDO PGSQL теперь требуется как минимум libpq 9.1.
Вызов readline_completion_function() перед запуском интерактивной подсказки (например, в auto_prepend_file) теперь отменяет функцию завершения интерактивной подсказки по умолчанию. Ранее readline_completion_function() работала только при вызове после запуска интерактивной подсказки.
SimpleXMLElement теперь реализует RecursiveIterator и включает в себя функционал SimpleXMLIterator. SimpleXMLIterator является пустым расширением SimpleXMLElement.
com.dotnet_version - это новая INI-директива для выбора версии платформы .NET, которая будет использоваться для объектов dotnet.
zend.exception_string_param_max_len - это новая INI-директива для установки максимальной длины строки в аргументе строковой трассировки стека.
Цели EBCDIC больше не поддерживаются, хотя маловероятно, что они до сих пор работали.
Компилятор Just-In-Time (JIT) был добавлен в модуль opcache.
array_slice() в массиве без расстояний между элементами больше не будет сканировать весь массив, чтобы найти начальное смещение. Это может значительно сократить время выполнения функции с большими смещениями и малой длиной.
strtolower() теперь использует реализацию SIMD в локали
"C"
LC_CTYPE
(которая используется по умолчанию).