array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'migration80.other-changes.php', 1 => 'Другие изменения', ), 'up' => array ( 0 => 'migration80.php', 1 => 'Миграция с PHP 7.4.x на PHP 8.0.x', ), 'prev' => array ( 0 => 'migration80.deprecated.php', 1 => 'Функциональность, объявленная устаревшей в PHP 8.0.x', ), 'next' => array ( 0 => 'migration74.php', 1 => 'Миграция с PHP 7.3.x на PHP 7.4.x', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'appendices/migration80/other-changes.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Модуль PHP был переименован из php7_module
в
php_module
.
Результаты ReflectionClass::getConstants() и
ReflectionClass::getReflectionConstants() теперь можно
фильтровать с помощью нового параметра filter
.
Добавлены три новые константы для работы с ним:
Математические функции 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
(которая используется по умолчанию).