Перейти к содержимому
Поиск
Php Разработка

PHP: полный мануал с примерами, функциями и ООП

Практический мануал PHP: от переменных и читаемого кода до безопасных форм, интеграций, базы данных и ООП на примере магазина. Учебный маршрут, поиск функций, подробные примеры, разбор ошибок и исходники для скачивания.

Александр НекрасовИзменено:
Практический мануал PHP: от переменных и функций к объектной модели интернет-магазина
PHP 8.5.11468 глав6256 карточек справочника
Дерево руководства

Глава 468 · Официальная база → практическое применение

Как читать, проверять и переиспользовать PHP Manual

Форматы, версии, сигнатуры, заметки, лицензия, индексы и changelog — с понятным маршрутом от документации к собственному тесту.

PHP Manual: корень полного официального дерева

Корень объединяет Copyright, начало работы, установку, справочник языка, безопасность, возможности PHP, справочник функций и расширений, FAQ и приложения. Локальное практическое дерево и официальный порядок ведут к одним подробным материалам; ни один из них не заменяет другой.

PHP Manual как единая книга

Служебная страница manual.php связывает руководство в единый документ. В локальной библиотеке её роль выполняет полное дерево: оно сохраняет официальный порядок, а поиск по задаче добавляет второй вход к тем же главам.

У руководства, примеров и пользовательских заметок есть условия использования и атрибуции. Перед публикацией производного материала проверяют Copyright и конкретную лицензию; ссылка на источник не отменяет её требований.

О руководстве PHP

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

Форматы руководства

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

PHP-руководство доступно на сайте и в виде разноформатных пакетов для скачивания и автономного чтения.

Замечание:

Некоторые издательства выпустили печатные версии этого руководства. Однако мы не рекомендуем пользоваться ими вследствие того, что они быстро устаревают.

Вы можете пользоваться онлайн-руководством » на сайте PHP.net. У онлайн-версии PHP-руководства два отдельных CSS-стиля — для онлайн-просмотра (на вебе) и для печати.

Преимущество онлайн-руководства над большей частью офлайн-форматов состоит в интеграции с заметками пользователей и » быстрыми ссылками, удобными для быстрого доступа к необходимой части руководства. Очевидный недостаток состоит в том, что читателю нужно находиться в онлайне, чтобы пользоваться руководством в онлайн-форматах.

В офлайне пользуются рядом форматов, и пользователь выбирает формат, который лучше остальных подходит для его операционной системы и отвечает читательским предпочтениям. Чтобы узнать больше о том, как создаётся такое количество форматов руководства, обратитесь к разделу «Как мы создаём форматы руководства».

Наиболее кросс-платформенный формат этого руководства — HTML-версия. Она доступна как в виде одного HTML-файла, так и в виде архива, который содержит несколько тысяч файлов, каждый из которых — отдельная глава руководства. Мы предоставляем эти версии руководств сжатыми, поэтому для доступа к файлам архива потребуется утилита разархивирования.

На платформах Windows доступна версия руководства в формате Windows HTML Help, который можно просматривать через приложение Windows HTML Help. Эта версия предусматривает поиск по тексту руководства, содержание и поддержку закладок. Многие среды разработки PHP-программ в Windows также используют эту версию из-за лёгкости доступа. Существуют также программы для просмотра CHM-файлов на Linux-системах. Смотрите » xCHM или » GnoCHM.

» Расширенная версия CHM-файлов также существует, она обновляется реже, но зато даёт ряд дополнительных возможностей. К сожалению, из-за особенностей технологий, которые помогают создавать этот формат, она работает только на системах Microsoft Windows.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

The PHP manual is provided in several formats. These formats can be divided into two groups: online readable formats, and downloadable packages.

Note:

Some publishers have made available printed versions of this manual. We cannot recommend any of those, as they tend to become out-of-date very quickly.

The manual can be read online at the » PHP.net website. The online version of the PHP manual has currently two CSS stylesheets, web friendly and a printer-friendly stylesheet.

Two notable advantages of the online manual over most of the offline formats is the integration of user-contributed notes and the » URL shortcuts that may be used to get to the desired manual parts quickly. An obvious disadvantage is the requirement to be online to view this edition of the manual.

There are several offline formats of the manual, and the most appropriate format for depends on the operating system, and personal reading style. For information on how the manual is generated in so many formats, read the 'How we generate the formats' section of this appendix.

The most cross-platform format of the manual is the HTML version. This is provided both as a single HTML file and as a package of individual files for each section (which results in a collection of several thousand files). We provide these versions compressed, so a decompression utility is required to retrieve the files contained within the archives.

For Windows platforms, the Windows HTML Help version of the manual enhances the HTML format for use with the Windows HTML Help application. This version provides full-text search, a full index, and bookmarking. Many popular Windows PHP development environments also integrate with this version of the documentation to provide easy access. CHM viewers for Linux desktops are also available. Check out » xCHM or » GnoCHM.

There is also an » extended CHM version available, which is updated less frequently, but provides many additional features. It will only work on Microsoft Windows though, because of the technologies used to build the help pages.

Как собираются форматы руководства

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Это руководство написали на языке XML-разметки по спецификации » DocBook XML DTD. Файлы PHP-документации обрабатывает » PhD (The [PH]P based [D]ocBook renderer, Средство визуализации DocBook-файлов на основе PHP) в целях поддержки и форматирования.

Работа с XML-разметкой как с единственным исходным форматом помогает создавать документацию во многих форматах и одновременно разрешает редактировать только один исходный документ для всех форматов. Утилита для форматирования руководства — » PhD. Чтобы создать руководство в формате Windows HTML Help, мы пользуемся компилятором CHM-файлов » Microsoft HTML Help Workshop и, разумеется, самим PHP — для дополнительных преобразований и форматирования.

Руководство создали на разных языках и в разных форматах, дополнительную информацию даёт страница » https://www.php.net/docs.php. Исходный код XML-файлов можно скачать из Git или просмотреть онлайн по адресу » https://github.com/php/doc-ru.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

This manual is written in XML using the » DocBook XML DTD, using » PhD (The [PH]P based [D]ocBook renderer) for maintenance and formatting.

Using XML as a source format gives the ability to generate many output formats from the source files, while only maintaining one source document for all formats. The tool used for formatting the online manual is » PhD. We use » Microsoft HTML Help Workshop to generate the Windows HTML Help format of the manual, and of course PHP itself to do some additional conversions and formatting.

The PHP manual is generated in various languages and formats, see » https://www.php.net/docs.php for additional details. The XML source code may be downloaded from git and viewed at » https://github.com/php/doc-en.

Как помочь документации

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Нам помогают в улучшении документации разными способами.

Если вы встретили в руководстве ошибки, на любом языке, сообщайте о них через систему отслеживания ошибок по адресу » https://github.com/php/; об ошибках в руководстве на английском языке сообщайте по адресу » https://github.com/php/doc-en/issues. Проблемы с документацией, включая ошибки с форматами руководства, необходимо отправлять как сообщение об ошибке.

Замечание:

Пожалуйста, не злоупотребляйте средствами отслеживания ошибок запросами о помощи. Вместо этого воспользуйтесь упомянутым » видом поддержки.

Через примечания пользователи делятся примерами, предостережениями и разъяснениями для других читателей. Но, пожалуйста, не используйте систему аннотации для сообщений об ошибках. Более подробные сведения о заметках пользователей даёт глава «О заметках пользователей» этого приложения.

Можно также отправлять запросы на принятие изменений » в зеркало репозитория документации на GitHub'е.

Руководство по PHP перевели на много языков. Знание английского и другого иностранного языка даёт вам ещё один способ улучшить это руководство, работая в команде переводчиков. Если вы собираетесь приступить к переводу, обратитесь к странице » https://doc.php.net/guide/.

У проекта PHP-документации также есть IRC-канал (чат), в котором общаются отдельные авторы руководства. Заходите на #php.doc на сайте irc.efnet.org и обсуждайте способы улучшения руководства.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

There are several ways everyone can help improve this documentation.

If an error is found in this manual, in any language, please report them using the issue tracker of the respective language repository at » https://github.com/php/; for instance, errors in the English manual should be reported at » https://github.com/php/doc-en/issues. All documentation related problems, including those about manual formats, should be submitted as bug reports.

Note:

Please don't abuse the issue trackers by submitting requests for help. Instead, use one of the many » support options.

By contributing notes, users may provide additional examples, caveats, and clarifications for other readers. But please do not submit bug reports using the annotation system. For details, see the section titled 'About user notes'.

It is also possible to submit pull requests to the » Github mirror of the documentation repository.

The PHP manual is translated into many languages. Knowing English and a foreign language allows for another way to help improve the PHP manual by working with a translation team. For information about starting a new translation, or helping a currently translated version, please read » https://doc.php.net/guide/.

The PHP Documentation Project also has an IRC channel where many manual authors hang out. Stop by #php.doc on irc.efnet.org and discuss ways to improve the PHP documentation.

Где искать дополнительную информацию

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Руководство не пытается охватить вопросы по общим практикам программирования. Программистам-новичкам или даже начинающим программистам бывает сложно научиться программировать на PHP только с этим руководством. Часто удобнее обратиться к материалу для начинающих.

Детали программирования на PHP обсуждают в ряде активных списков рассылки. Напишите в список рассылки, если столкнулись с проблемой. Варианты поддержки пользователей, включая и почтовые списки рассылки, перечисляет » страница поддержки PHP.net.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

This manual does not attempt to provide instruction about general programming practices. First-time - or even just beginning - programmers may find it difficult to learn how to program in PHP using this manual exclusively. Instead, seek out a text more oriented towards beginners.

There are a number of active mailing lists for discussion on all aspects of programming with PHP. If stuck with a problem, consider using these lists. For support options, including mailing lists, view » the PHP.net support page.

Пользовательские заметки

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Заметки пользователей играют важную роль в разработке руководства. В заметках читатели приводят примеры, оставляют предостережения и дополнительные пояснения, а мы можем включить эти отзывы в основной текст руководства. И пока замечания пользователей не включили в руководство, их можно просматривать онлайн и в ряде офлайн-форматов.

Замечание:

Заметки пользователей не модерируются перед публикацией, поэтому качество примеров кода и даже их корректность не гарантируется. (Так же, как не гарантируется качество и точность самого текста руководства).

Замечание:

По лицензионному соглашению заметки пользователей рассматриваются как часть самого PHP-руководства, поэтому к ним применяется та же лицензия, что и к самому руководству (Creative Commons Attribution). Подробности даёт страница «Авторские права руководства».

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

The user-contributed notes play an important role in the development of this manual. By allowing readers of the manual to contribute examples, caveats, and further clarifications from their browser, we are able to incorporate that feedback into the main text of the manual. And until the notes have been incorporated, they may be viewed in their submitted form online, and in some of the offline formats.

Note:

The user-contributed notes are not moderated before they appear online, so the quality of the writing or code examples, and even the veracity of the contribution, cannot be guaranteed. (Not that there is any guarantee of the quality or accuracy of the manual text itself.)

Note:

For the purposes of license coverage the user-contributed notes are considered part of the PHP manual, and are therefore covered by the same license that covers this documentation (Creative Commons Attribution at the moment). For more details see the Manual's Copyright page.

Какие версии PHP документирует руководство

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Это руководство содержит информацию о прошлых, настоящих и будущих версиях PHP. Изменения поведения задокументировали замечаниями, историей изменений и непосредственно в тексте самого руководства. Самая ранняя версия, которую задокументировали, — PHP 7.0.0.

Версию отметят как «доступна в Git», либо «разрабатываемая версия», если существует документация для последних (ещё невыпущенных) версий PHP. И хотя эти изменения стоит учитывать в планировании, в редких случаях они могут измениться.

Разработка ведётся в Git. Страница » анонимный доступ к Git описывает, как получить последнюю разрабатываемую версию.

Внесём ясность. Руководство указывает мажорную, минорную и точечную версию выпусков PHP. Возьмём как пример версию PHP 7.3.1, где 7 — мажорная версия, 3 — минорная, и 1 — точечная версия. Обычно PHP добавляет новые возможности только в мажорные и минорные выпуски, а исправления ошибок — в точечные выпуски. Соглашение не всегда соответствует действительности.

Обратите также внимание, что PHP-руководство пишут в настоящем, а не в будущем времени, даже для задокументированных, но ещё недоступных возможностей. Причина состоит в том, что руководство выдерживает испытание временем и поэтому не требует рутинных грамматических правок с каждым PHP-выпуском.

Много раз в руководстве указываются «значения по умолчанию» для PHP-директив. Эти значения основаны на том, как PHP ведёт себя без конфигурационного файла php.ini, поэтому значения иногда отличаются от тех, которые приводят распространяемые вместе с PHP файлы php.ini-development и php.ini-production. Значения по умолчанию также относятся к последней версии PHP, хотя история изменений упоминает только прошлые значения. Подробнее о значениях и истории изменений рассказывает приложение со списком PHP-директив.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

The manual contains information about past, current, and future versions of PHP. Changes in behaviour are documented as notes, changelogs, and inline text within the manual pages. The earliest documented version is PHP 7.0.0.

When documentation exists for the latest (unreleased) developmental versions of PHP, it will be labeled as either "available in Git" or "development version." And while these changes should be planned for, in rare cases they may change.

All development takes place in Git and may be checked out as described within the » anonymous Git access page.

And to clarify, the manual will refer to major, minor and point PHP releases. Using PHP 7.3.1 as an example, the 7 refers to the major version, 3 to minor, and 1 is the point release. Typically PHP only adds new features to major and minor releases, and fixes bugs in point releases. However, this convention is not always true.

Also note that the PHP manual is written in present tense, not future tense, even for documented features that are not yet available. The reason for this is so the manual can stand the test of time, thus not require tedious grammar updates with every PHP release.

Many times the PHP manual lists "Default Values" for PHP directives. These values are based on how PHP behaves without a php.ini configuration file, so this may differ from values found in the distributed php.ini-development and php.ini-production files. They also refer to the latest version of PHP, although changelog entries do mention past values. See the PHP directive appendix for details regarding these values and changes.

Сверить фактическую сигнатуру текущего runtimeСамостоятельный пример
<?php
$function = new ReflectionFunction('array_map');
echo $function->getName(), "\n";
echo count($function->getParameters()), " parameters\n";
echo $function->getReturnType(), "\n";
Ожидаемый результат
array_map
3 parameters
array

Reflection показывает установленный runtime, а официальный changelog — исторические изменения. Для расширения результат зависит от реально загруженной версии модуля.

Как читать сигнатуру функции

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Сигнатура — короткая схема вызова. Сначала читают имя, затем каждый параметр слева направо, после двоеточия — тип результата. Квадратная необязательность в старой записи и значение после = означают, что аргумент можно не передавать.

ФрагментКак читать
strlen(string $string): intФункция принимает одну строку и возвращает целое число байтов.
bool $strict = falseНеобязательный bool-параметр; без аргумента используется false.
array &$matches = nullФункция может записать результат в переданную переменную; & — передача по ссылке.
PHP 8 >= 8.0.0Запись версии ограничивает появление или конкретную форму API.
Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Каждую функцию в руководстве документировали для быстрого ознакомления. Зная, как правильно читать и понимать текст, намного проще изучать PHP. Вместо того, чтобы полагаться на примеры или копировать и вставлять их, лучше понять, как читать определения функций (прототипы). Давайте начнём:

Замечание: Предпосылки: Базовое понимание типов

Хотя PHP и слабо типизированный язык, важно иметь базовое представление о типах, поскольку типы играют большую роль в PHP.

Определения функций показывают, значения какого типа они возвращают. В качестве первого примера возьмём определение функции strlen():

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Возвращает длину строки

Описание
strlen ( string $string ) : int

Возвращает длину переданной строки.

Объяснение определения функции
ЧастьОписание
strlen Имя функции.
(PHP 4, PHP 5, PHP 7) strlen() есть в каждой версии PHP: 4, 5 и 7
( string $string ) Первый (и в нашем случае — единственный) параметр этой функции называется string, а его тип — строка (string).
int Тип значения, который возвращает эта функция, — число (int) (поскольку длина строки измеряется числом).

Можно переписать вышеуказанное определение функции в более общем виде:

      имя функции    ( тип параметра   имя параметра ) : возвращаемый тип

Многие функции принимают несколько аргументов, например, функция in_array(). Её прототип выглядит так:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

Что это означает? Функция in_array() возвращает логическое значение: true в случае успешного выполнения (если функция нашла параметр needle в параметре haystack) или false, если возникла ошибка (если функция не нашла параметр needle в параметре haystack). Первый параметр называется needle («иголка») и принимает разные типы, поэтому он называется «смешанным». Этот смешанный параметр needle (то, что мы ищем) может быть любым скалярным значением (string, integer, или float), либо массивом. Параметр haystack («стог сена», массив, в котором мы ищем) — второй параметр. Третий необязательный параметр называется strict («строгий»). У каждого необязательного параметра есть значение по умолчанию; если значение по умолчанию неизвестно, оно отображается как ? Руководство указывает, что параметр strict по умолчанию принимает логическое значение false. Смотрите отдельную страницу документации по каждой функции для более подробной информации по их работе.

Символ & (амперсанд) перед параметром функции разрешает передавать значение параметра по ссылке:

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

В этом примере мы можем использовать третий необязательный параметр &$matches, который передаётся по ссылке.

Есть также функции с более сложной информацией о версиях PHP. Возьмём в качестве примера функцию html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

Это означает, что функция появилась в официальных версиях языка только с выхода PHP 4.3.0.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

Each function in the manual is documented for quick reference. Knowing how to read and understand the text will make learning PHP much easier. Rather than relying on examples or cut/paste, everyone should know how to read function definitions (prototypes). Let's begin:

Note: Prerequisite: Basic understanding of types

Although PHP is a loosely typed language, it's important to have a basic understanding of types as they have important meaning.

Function definitions tell us what type of value is returned. Let's use the definition for strlen() as our first example:

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Get string length

Description
strlen ( string $string ) : int

Returns the length of given string.

Explanation of a function definition
PartDescription
strlen The function name.
(PHP 4, PHP 5, PHP 7) strlen() has been around in all versions of PHP 4, 5 and 7
( string $string ) The first (and in this case the only) parameter/argument for this function is named string, and it's a string.
int Type of value this function returns, which is an int (i.e. the length of a string is measured in numbers).

We could rewrite the above function definition in a generic way:

      function name    ( parameter type   parameter name ) : returned type

Many functions take on multiple parameters, such as in_array(). Its prototype is as follows:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

What does this mean? in_array() returns a boolean value, true on success (if the needle was found in the haystack) or false on failure (if the needle was not found in the haystack). The first parameter is named needle and it can be of many different types, so we call it "mixed". This mixed needle (what we're looking for) can be either a scalar value (string, integer, or float), or an array. haystack (the array we're searching in) is the second parameter. The third optional parameter is named strict. All optional parameters have default values; if the default value is unknown, it is shown as ?. The manual states that the strict parameter defaults to boolean false. See the manual page on each function for details on how they work.

In addition the & (ampersand) symbol prepended to a function parameter allows the parameter to be passed by reference, as seen below:

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

In this example, we can see the third optional parameter &$matches will be passed as reference.

There are also functions with more complex PHP version information. Take html_entity_decode() as an example:

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

This means that this function has only been available in a released version since PHP 4.3.0.

Из сигнатуры перейти к вызову и результатуСамостоятельный пример
<?php
$length = strlen('PHP');
$found = in_array('paid', ['new', 'paid'], true);
var_dump($length);
var_dump($found);
Ожидаемый результат
int(3)
bool(true)

strlen принимает string и возвращает int. Третий аргумент in_array включает строгое сравнение; optional-параметр в сигнатуре можно опустить, но здесь он важен для смысла статуса.

Переводы руководства

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Руководство по PHP доступно не только в нескольких форматах, но и на разных языках. Сначала текст руководства пишут на английском, а потом команды людей по всему миру переводят его на родной язык. Система сборки руководства использует английский вариант, если перевод документации какой-то функции или главы ещё не завершили.

Люди, которые переводят документацию, начинают с исходного кода в формате XML, который доступен по адресу » https://github.com/php/doc-ru", а затем переводят его на родной язык. Для перевода не используются сгенерированные версии (например, HTML-разметка или обычный текст), поскольку система сборки документации сама заботится о преобразовании XML-разметки в удобные для чтения форматы.

Замечание:

Чтобы помочь с переводом документации, свяжитесь с командой перевода или командой, которая подготавливает документацию, через подписку на список рассылки phpdoc: вышлите пустое сообщение на адрес » phpdoc+subscribe@lists.php.net. Адрес списка рассылки — phpdoc@lists.php.net. Укажите в сообщении, что заинтересовались в участии в переводе руководства, и действующий участник поможет начать перевод на новый язык или свяжет с командой, которая переводит документацию на нужный язык.

Руководство частично или полностью перевели более чем на 10 языков.

Доступ для загрузки каждой из этих версий руководства открыт по адресу » https://www.php.net/docs.php.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

The PHP manual is available not only in various formats, but also in various languages. The text of the manual is first written in English, then teams of people across the world take care of translating it to their native languages. If a translation for a specified function or chapter has not yet been made, the manual's build system falls back to the English version of it.

People involved in the translations start from the XML source code available from » https://github.com/php/doc-en and from it they translate to their mother language. They do not use the generated versions (like HTML or plain text) as it's the build system that takes care of the conversions from XML to human readable formats.

Note:

To help translate the documentation, please get in touch with the translation/documentation team by subscribing to the phpdoc mailing list: send an empty mail to » phpdoc+subscribe@lists.php.net. The mailing list address is phpdoc@lists.php.net. State in the message an interest in translating the manual and someone will reply with feedback on moving forward by helping start a new language translation, or by contacting the existing team for the desired language.

At the moment the manual is available, partly or not, in over 10 languages.

They may all be downloaded here: » https://www.php.net/docs.php.

Лицензия Creative Commons Attribution 3.0

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Лицензия отвечает не на вопрос «можно ли скопировать ссылку», а на вопрос, что разрешено делать с самим текстом руководства. Ниже сохранён полный юридический текст; это краткая карта для чтения, а не его замена.

РазделЧто фиксирует
1. DefinitionsWork, Adaptation, Collection, распространение, воспроизведение и стороны лицензии.
2–3. Rights and grantСвободные законом случаи сохраняются; лицензия даёт всемирные, безвозмездные, неисключительные права на воспроизведение, адаптацию, распространение и публичное исполнение.
4. RestrictionsПри распространении сохраняют лицензию и уведомления, не вводят дополнительные ограничения, дают разумную атрибуцию и отмечают изменения; атрибуция не означает одобрение автором.
5–6. Warranty and liabilityПроизведение предоставляется как есть; гарантии и ответственность ограничены настолько, насколько разрешает применимое право.
7. TerminationНарушение прекращает права нарушителя автоматически; добросовестные получатели адаптаций и коллекций сохраняют свои лицензии.
8. MiscellaneousЛицензия передаётся каждому получателю, недействительность одного условия не отменяет остальные, а изменение договора требует письменного согласия.
Полный официальный договор страницы — большой справочник, раскрывается по запросу

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.

  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.

  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.

  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.

  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.

  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.

  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.

  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;

  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";

  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,

  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;

    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,

    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.

  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.

  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.

  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.

  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.

  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent

  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.

  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

Указатели руководства

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Указатели — это входы к содержанию, а не отдельные определения. Выберите предметный справочник ниже; внутри карточки проверяются сигнатура, версия, результат и отказ.

Указатель примеров

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Официальный указатель примеров связывает номер примера с его исходной страницей. В этой библиотеке каждый самостоятельный пример дополнительно имеет ожидаемый результат и архив, поэтому искать его удобнее по задаче или заголовку главы.

Указатель функций и методов

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Алфавитный указатель отвечает на вопрос «как называется функция». Для выбора по задаче откройте справочник функций: категории ведут к тем же определениям, параметрам и примерам.

История изменений документации

Этот узел объясняет, как устроено и лицензируется само руководство. Практический вывод: версия страницы, формат, перевод и пользовательская заметка имеют разную надёжность; нормативные правила проверяют по актуальному официальному тексту и версии PHP.

Полный официальный договор страницы — большой справочник, раскрывается по запросу

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

Список изменений

В функции встроенных модулей внесли следующие изменения.

VersionFunctionDescription
8.5.0array_key_existsИспользование null в параметре key устарело, вместо этого используйте пустую строку.
array_multisortТеперь тип возвращаемого значения — true; ранее был bool.
chrПередача целочисленных значений за пределами интервала [0, 255] устарела.
cli_set_process_titleФункция cli_set_process_title теперь выдаёт ошибку уровня E_WARNING при установке слишком длинного заголовка процесса; раньше заголовок усекался.
closedirИспользование null для параметра dir_handle теперь не рекомендуется. Вместо этого следует явно указать последний открытый дескриптор каталога.
curl_closeФункция объявлена устаревшей.
curl_multi_get_handlesThe function was added.
curl_share_closeФункция устарела.
exif_imagetypeДобавлена поддержка HEIF.
finfo_bufferПараметр context объявлен устаревшим, поскольку игнорируется.
finfo_closeФункция устарела.
finfo_closeТип значения возврата изменился на true; раньше объявление содержало тип bool.
ftp_set_optionТип значения возврата изменился на true; раньше объявление содержало тип bool.
gc_collect_cyclesВозвращаемое значение больше не учитывает строки и ресурсы, которые были косвенно собраны через циклы.
get_defined_functionsПараметр exclude_disabled устарел, поскольку больше не влияет на результат.
grapheme_levenshteinФункцию добавили в модуль.
grapheme_striposДобавили необязательный параметр locale.
grapheme_stristrДобавили необязательный параметр locale.
grapheme_strposДобавили необязательный параметр locale.
grapheme_strriposДобавили необязательный параметр locale.
grapheme_strrposДобавили необязательный параметр locale.
grapheme_strstrДобавили необязательный параметр locale.
grapheme_substrДобавили необязательный параметр locale.
gzfileТип параметра use_include_path теперь – логическое значение (bool). Ранее он был целым числом (int).
gzopenТип параметра use_include_path теперь – логическое значение (bool). Ранее он был целым числом (int).
imagecopyresampledТип возврата изменился на true; раньше возвращался тип bool.
imagedestroyФункция устарела.
ldap_get_optionПараметр ldap теперь допускает значение null.
libxml_set_external_entity_loaderТеперь тип возвращаемого значения — true; ранее был bool.
openssl_cms_encryptТип параметра cipher_algo теперь является целым числом (int) или строкой (string). Ранее он был целым числом (int).
openssl_pkey_deriveПараметр key_length устарел.
openssl_private_decryptДобавили необязательный параметр digest_algo.
openssl_public_encryptДобавили необязательный параметр digest_algo.
openssl_signДобавили необязательный параметр padding.
openssl_verifyДобавили необязательный параметр padding.
ordПередача строки размером больше одного байта устарела.
pcntl_waitidДобавили параметр resource_usage.
pg_copy_fromЗначение параметра rows теперь является итерируемым значением (iterable). Ранее оно было массивом (array).
posix_fpathconfТеперь устанавливает last_error в значение EBADF и выдаёт ошибку уровня E_WARNING, когда встречает недопустимый файловый дескриптор.
posix_isattyТеперь выдаёт ошибку уровня E_WARNING, когда параметр file_descriptor недопустимый.
posix_killТеперь выбрасывает исключение ValueError, когда параметр process_id меньше или больше значения, которое поддерживает платформа (диапазон знакового integer или long).
posix_setpgidТеперь выбрасывает исключение ValueError, когда параметр process_id или process_group_id меньше нуля или больше значения, которое поддерживает платформа.
posix_setrlimitТеперь выбрасывает исключение ValueError, когда параметр hard_limit или soft_limit меньше -1, либо когда soft_limit больше hard_limit.
posix_ttynameТеперь устанавливает last_error в значение EBADF, когда параметр file_descriptor недопустимый.
readdirИспользование null для параметра dir_handle теперь не рекомендуется. Вместо этого следует явно указать последний открытый дескриптор каталога.
readgzfileТип параметра use_include_path теперь – логическое значение (bool). Ранее он был целым числом (int).
readline_add_historyВместо общего логического типа bool теперь возвращается конкретный тип true.
readline_callback_handler_installВместо общего логического типа bool теперь возвращается конкретный тип true.
readline_clear_historyВместо общего логического типа bool теперь возвращается конкретный тип true.
rewinddirИспользование null для dir_handle теперь не рекомендуется. Вместо этого следует явно указать последний открытый дескриптор каталога.
setlocaleПередача целого числа 0 в качестве аргумента locales больше не поддерживается и теперь выбрасывает ошибку TypeError.
shm_detachТеперь тип возвращаемого значения — true; ранее был bool.
snmp2_getТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
snmp2_setТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
snmp3_getТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
snmp3_setТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
snmpgetТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
snmpsetТеперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.
socket_addrinfo_lookupТеперь выбрасывает исключение TypeError, если какое-либо значение массива hints нельзя привести к целому числу, и может выбросить исключение ValueError, если какое-либо из этих значений переполняется.
socket_bindТеперь выбрасывает исключение ValueError, когда параметр port меньше 0 или больше 65535.
socket_createТеперь поддерживает создание сокетов семейства AF_PACKET.
socket_create_listenТеперь выбрасывает исключение ValueError, когда параметр port меньше 0 или больше 65535.
socket_getsocknameТеперь получает индекс интерфейса и его строковое представление при использовании на сокете семейства AF_PACKET.
socket_sendtoТеперь выбрасывает исключение ValueError, когда параметр port меньше 0 или больше 65535.
socket_set_optionТеперь выбрасывает исключение, когда используется MCAST_LEAVE_GROUP или MCAST_LEAVE_SOURCE_GROUP, а значение не является допустимым объектом или массивом, и выбрасывает исключение ValueError, когда параметр многоадресной рассылки используется на сокете, который не относится к семейству AF_INET или AF_INET6.
spl_autoload_unregisterПередача функции spl_autoload_call в качестве аргумента callback-функции для отмены регистрации всех автозагрузчиков объявлена устаревшей. Вместо этого следует пройти по значениям, которые возвращает функция spl_autoload_functions, и вызвать функцию spl_autoload_unregister для каждого значения.
xml_parser_freeФункция устарела.
IntlListFormatter::__constructДобавили класс.
Locale::isRightToLeftДобавили метод Locale::isRightToLeft.
Pdo\Pgsql::copyFromArrayПараметр rows теперь также принимает объекты Traversable; раньше принимался только массив (array).
ReflectionClass::getConstantВызов метода ReflectionClass::getConstant для несуществующих констант объявлен устаревшим.
ReflectionConstant::getAttributesМетод появился в классе.
ReflectionMethod::setAccessibleМетод объявлен устаревшим, поскольку больше ни на что не влияет.
ReflectionProperty::getDefaultValueВызов метода ReflectionProperty::getDefaultValue для свойств без значений по умолчанию объявлен устаревшим.
ReflectionProperty::getMangledNameМетод появился в классе.
ReflectionProperty::setAccessibleМетод объявлен устаревшим, поскольку больше ни на что не влияет.
SoapClient::__doRequestДобавили необязательный параметр uriParserClass.
SoapFault::__constructВ метод добавили необязательный параметр lang, чтобы объект ошибки соответствовал спецификации протокола SOAP 1.2.
SoapServer::faultВ метод добавили необязательный параметр lang, чтобы объект ошибки соответствовал спецификации протокола SOAP 1.2.
SplFileObject::fwriteЗначение параметра length теперь допускает значение null.
SplObjectStorage::attachМетод объявлен устаревшим в пользу SplObjectStorage::offsetSet.
SplObjectStorage::containsМетод объявлен устаревшим в пользу SplObjectStorage::offsetExists.
SplObjectStorage::detachМетод устарел; объекты из контейнера удаляют методом SplObjectStorage::offsetUnset.
SQLite3Stmt::busyThis method was added.
8.4.0DateInterval::createFromDateStringВместо объединения типов DateIntervalfalse метод теперь возвращает тип DateInterval.
DatePeriod::__constructСигнатура с параметром isostr устарела; период на основе интервалов повторения в формате стандарта ISO 8601 создают методом DatePeriod::createFromISO8601String.
DateTime::modifyТеперь предварительный тип возвращаемого значения — DateTime; ранее был DateTimefalse.
DateTimeImmutable::modifyТеперь предварительный тип возвращаемого значения — DateTimeImmutable; ранее был DateTimeImmutablefalse.
DOMDocument::registerNodeClassМетод DOMDocument::registerNodeClass теперь предварительно возвращает значение true.
DOMImplementation::createDocumentТеперь у функции предварительный возвращаемый тип DOMDocument.
DOMXPath::registerPhpFunctionsПараметр restrict теперь принимает callable-выражения, когда набор callback-функций, доступных для вызова из XPath-выражений, ограничивают путём передачи массива (array).
При передаче недопустимых названий callback-функций метод теперь выбрасывает ошибку ValueError. При передаче значений, которые не принадлежат типу callable, метод теперь выбрасывает ошибку TypeError.
bcpowРаньше при возведении нуля в отрицательную степень возвращалось значение 0, теперь выбрасывают исключение DivisionByZeroError.
bind_textdomain_codesetФункция теперь выбрасывает ошибку ValueError, если значение параметра domain является пустой строкой (string).
bind_textdomain_codesetПараметр codeset стал необязательным. Раньше параметр требовалось указывать при каждом вызове.
bindtextdomainПараметр directory стал необязательным. Раньше параметр требовалось указывать при каждом вызове.
curl_getinfoДобавили константу CURLINFO_POSTTRANSFER_TIME_T и элемент posttransfer_time_us, который доступен с Curl 8.10.0 или более новой версии библиотеки.
curl_multi_selectФункция теперь выбрасывает ошибку ValueError, если значение параметра timeout меньше 0 или больше PHP_INT_MAX.
curl_setoptОпция CURLOPT_DNS_USE_GLOBAL_CACHE больше ни на что не влияет, а включение опции в потокобезопасных PHP-сборках больше не вызывает предупреждения.
curl_versionДобавили элемент features_list.
dba_closeПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_deleteПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_existsПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_fetchПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_firstkeyПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_insertПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_key_splitПередача значений null или false в параметр key устарела.
dba_nextkeyПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_openФункция теперь возвращает экземпляр класса Dba\Connection; ранее возвращался ресурс (resource).
dba_optimizeПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_popenФункция теперь возвращает экземпляр класса Dba\Connection; ранее возвращался ресурс (resource).
dba_replaceПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
dba_syncПараметр dba теперь принимает объект Dba\Connection; раньше параметр ждал ресурс (resource) dba .
debug_zval_dumpФункция debug_zval_dump теперь указывает, является ли массив упакованным.
dgettextФункция теперь выбрасывает ошибку ValueError, если значение параметра domain является пустой строкой (string).
dngettextФункция теперь выбрасывает ошибку ValueError, если значение параметра domain является пустой строкой (string).
exitЯзыковая конструкция exit стала полноценной функцией, поэтому функция следует семантике жонглирования типами, на неё влияет декларация strict_types, функцию разрешили вызывать с именованными аргументами и быть функцией переменной.
exitВызов функции exit без параметра внутри функции завершения работы или деструктора объекта теперь сбрасывает код выхода в значение 0; раньше код выхода, который установил предыдущий вызов функции exit, сохранялся.
fgetcsvВызов функции без явной передачи аргумента escape устарел.
flushПри работе PHP в режиме FastCGI заголовки без тела теперь успешно сбросятся.
fputcsvВызов функции без явной передачи аргумента escape устарел.
hash_initПередача параметров неверного типа устарела.
hash_updateФункция теперь возвращает значение true вместо логического значения (bool).
highlight_stringТип значения возврата изменили со stringbool на stringtrue.
http_build_queryДо версии PHP 8.4.0, свойства BackedEnum data преобразовывались в объекты, а не в их скалярные эквиваленты.
idn_to_asciiТеперь выбрасывает исключение ValueError, если параметр domain пустой.
idn_to_asciiТеперь выбрасывает исключение ValueError, если параметр variant не равен INTL_IDNA_VARIANT_UTS46.
idn_to_utf8Теперь выбрасывает исключение ValueError, если параметр domain пустой.
idn_to_utf8Теперь выбрасывает исключение ValueError, если параметр variant не равен INTL_IDNA_VARIANT_UTS46.
imageavifФункция теперь выбрасывает ошибку ValueError при недопустимом значении в параметре quality или speed.
imagefilterФункция теперь выбрасывает ошибку ValueError, если значение параметра sub или plus приведёт к переполнению или недополнению со значением IMG_FILTER_SCATTER для параметра filter.
imagejpegФункция теперь выбрасывает ошибку ValueError, если значение параметра quality недопустимо.
imagepngФункция теперь выбрасывает ошибку ValueError, если значение параметра quality недопустимо.
imagescaleФункция теперь выбрасывает ошибку ValueError, если значение параметра width или height приведёт к переполнению или недополнению.
imagescaleФункция теперь выбрасывает ошибку ValueError, если значение параметра mode некорректно.
imagewebpФункция теперь выбрасывает ошибку ValueError, если значение параметра quality недопустимо.
lcg_valueФункция устарела.
ldap_connectТеперь вызов функции ldap_connect с более чем двумя аргументами устарел.
ldap_exopИспользование более 4 параметров объявлено устаревшим, используйте вместо этого ldap_exop_sync.
libxml_set_streams_contextФункция libxml_set_streams_context теперь выбрасывает ошибку TypeError при передаче в параметр context непотокового ресурса, вместо того, чтобы выбрасывать ошибку позже, когда контекст используется.
long2ipТип возврата изменился со stringfalse на string.
mb_decode_numericentityФункция mb_decode_numericentity теперь выбрасывает ошибку ValueError, если список map содержит значения кроме int.
mb_encode_numericentityФункция mb_encode_numericentity теперь выбрасывает ошибку ValueError, если список map содержит значения кроме int.
mb_http_outputФункция mb_http_output теперь выбрасывает ошибку ValueError, если значение параметра encoding содержит нулевые байты.
mb_strcutПоведение для некорректных строк UTF-8 и UTF-16 стало более согласованным.
mb_substrДля некорректных строк (содержащих ошибки кодировки) индексы символов теперь интерпретируются так же, как и в большинстве других функций mbstring. Это означает, что индексы символов, которые возвращает функция mb_strpos, можно передавать напрямую.
odbc_autocommitПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_binmodeПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_closeПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_columnprivilegesПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_columnsПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_commitПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_connectФункция теперь возвращает экземпляр соединения Odbc\Connection; раньше возвращалось значение с типом resource.
odbc_connectПараметры user и password теперь допускают значение null; они теперь являются необязательными и по умолчанию имеют значение null.
odbc_connectРанее использование пустой строки для параметра password не включало pwd в генерируемую строку подключения параметра dsn. Теперь он генерируется для включения pwd, который имеет пустую строку в качестве своего значения. Чтобы восстановить прежнее поведение, в параметр password теперь можно передать значение null.
odbc_connectРанее, если dsn содержал uid или pwd, параметры user и password игнорировались. Теперь параметр user игнорируется, только если значение параметра dsn содержит uid, а параметр password игнорируется, только если значение параметра dsn содержит pwd.
odbc_cursorПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_data_sourceПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_errorПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_errormsgПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_execПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_execФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_executeФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_fetch_arrayПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_fetch_arrayПараметр row теперь принимает значение null.
odbc_fetch_intoПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_fetch_intoПараметр row теперь принимает значение null.
odbc_fetch_objectПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_fetch_objectПараметр row теперь принимает значение null.
odbc_fetch_rowПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_fetch_rowТеперь выбрасывается ошибка уровня E_WARNING, если значение параметра row меньше либо равно нулю.
odbc_field_lenПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_field_nameПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_field_numПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_field_scaleПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_field_typeПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_foreignkeysПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_foreignkeysФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_free_resultПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_gettypeinfoПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_gettypeinfoФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_longreadlenПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_next_resultПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_num_fieldsПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_num_rowsПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_pconnectФункция теперь возвращает экземпляр соединения Odbc\Connection; раньше возвращалось значение с типом resource.
odbc_pconnectПараметры user и password теперь допускают значение null; они теперь являются необязательными и по умолчанию имеют значение null.
odbc_pconnectРанее использование пустой строки для параметра password не включало pwd в генерируемую строку подключения параметра dsn. Теперь он генерируется для включения pwd, который имеет пустую строку в качестве своего значения. Чтобы восстановить прежнее поведение, в параметр password теперь можно передать значение null.
odbc_pconnectРанее, если dsn содержал uid или pwd, параметры user и password игнорировались. Теперь параметр user игнорируется, только если значение параметра dsn содержит uid, а параметр password игнорируется, только если значение параметра dsn содержит pwd.
odbc_prepareПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_prepareФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_primarykeysПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_primarykeysФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_procedurecolumnsПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_procedurecolumnsФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_proceduresПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_proceduresФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_resultПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_result_allПараметр statement теперь принимает экземпляр с результом OBDC-запроса Odbc\Result; раньше принимался тип resource.
odbc_rollbackПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_setoptionПараметр odbc теперь ожидает экземпляр класса Odbc\Connection или Odbc\Result; раньше ожидалось значение с типом resource.
odbc_specialcolumnsПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_specialcolumnsФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_statisticsПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_statisticsФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_tableprivilegesПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_tableprivilegesФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
odbc_tablesПараметр odbc теперь принимает объект соединения Odbc\Connection; раньше принимался тип resource.
odbc_tablesФункция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource.
openssl_csr_newАссоциативный массив distinguished_names теперь поддерживает массивы в качестве значений, что позволяет указывать несколько значений для одного атрибута.
openssl_csr_newПараметр extra_attributes теперь правильно устанавливает атрибуты CSR, а не изменяет уникальное имя субъекта, как это было ранее.
openssl_csr_signДобавлен параметр serial_hex.
openssl_password_hashФункция добавлена.
openssl_password_verifyФункция добавлена.
openssl_pkey_get_detailsДобавлена поддержка ключей на основе Curve25519 и Curve448. В частности, были добавлены поля x25519, ed25519,x448 и ed448.
openssl_pkey_newДобавлена поддержка ключей на основе Curve25519 и Curve448 с добавлением полей x25519, ed25519, x448 и ed448.
openssl_x509_parseРазбор сертификата без секунд в UTCTime больше не допускается ни для одной версии OpenSSL. Это уже было запрещено в OpenSSL 3.3+.
password_hashЗначение по умолчанию для опции cost алгоритма PASSWORD_BCRYPT увеличили с 10 до 12.
pcntl_sigprocmaskЕсли значение параметра signal не задано, выбрасывается ошибка ValueError.
pcntl_sigprocmaskЕсли значение параметра signal не целое число (int), выбрасывается ошибка ValueError.
pcntl_sigprocmaskЕсли значение параметра signal некорректно, выбрасывается ошибка ValueError.
pcntl_sigprocmaskЕсли значение параметра mode не SIG_BLOCK, SIG_UNBLOCK или SIG_SETMASK, выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра signal не задано, выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра signal не целое число (int), выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра signal некорректно, выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра seconds меньше 0, выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра nanoseconds меньше 0, выбрасывается ошибка ValueError.
pcntl_sigtimedwaitЕсли значение параметра seconds и nanoseconds меньше 0, выбрасывается ошибка ValueError.
pcntl_sigwaitinfoЕсли значение параметра signal не задано, выбрасывается ошибка ValueError.
pcntl_sigwaitinfoЕсли значение параметра signal не целое число (int), выбрасывается ошибка ValueError.
pcntl_sigwaitinfoЕсли значение параметра signal некорректно, выбрасывается ошибка ValueError.
pg_fetch_resultСигнатура функции pg_fetch_result с двумя аргументами — result и field — устарела; функцию вызывают с тремя аргументами с передачей в параметр row значения null.
pg_field_is_nullСигнатура функции pg_field_is_null с двумя аргументами — result и field — устарела; функцию вызывают с тремя аргументами с передачей в параметр row значения null.
pg_field_prtlenСигнатура функции pg_field_prtlen с двумя аргументами — result и field — устарела; функцию вызывают с тремя аргументами с передачей в параметр row значения null.
pg_selectПараметр conditions стал необязательным.
php_unameФункция выбрасывает ошибку ValueError, если указали недопустимый режим mode.
posix_isattyУстанавливается errno (номер ошибки) EBADF, если переданный файловый дескриптор/поток недействителен.
powПередача в аргументе exponent отрицательного значения для возведения 0 в отрицательную степень устарела.
print_rТип возврата изменили со stringbool на stringtrue.
roundДобавили четыре новые режима округления.
roundФункция теперь выбрасывает ошибку ValueError, если в параметр mode передали недопустимый режим округления.
session_set_save_handlerТеперь вызов функции session_set_save_handler с более чем двумя аргументами устарел. Вместо этого используйте сигнатуру с двумя аргументами.
simplexml_import_domДобавлена поддержка Dom\Document.
simplexml_import_domФункция теперь выбрасывает ошибку TypeError вместо ValueError, если переданный узел node не XML и не HTML.
socket_create_listenЗначение по умолчанию параметра backlog теперь равно значению константы SOMAXCONN. Раньше значение равнялось 128.
str_getcsvВызов функции без явной передачи аргумента escape устарел.
str_getcsvФункция теперь подражает поведению функций fgetcsv и fputcsv и выбрасывает ошибку ValueError, если в параметры separator, enclosure или escape передали недопустимое значение.
strcspnДо PHP 8.4.0 при передаче в параметр characters пустой строки поиск ошибочно останавливался на первом NUL-байте в аргументе string.
stream_bucket_appendПараметр bucket теперь принимает объект StreamBucket; раньше принимался объект stdClass.
stream_bucket_make_writeableФункция теперь возвращает объект класса StreamBucket; раньше возвращался объект stdClass.
stream_bucket_newФункция теперь возвращает объект класса StreamBucket; раньше возвращался объект stdClass.
stream_bucket_prependПараметр bucket теперь принимает объект StreamBucket; раньше принимался объект stdClass.
stream_context_set_optionАльтернативная сигнатура с двумя параметрами устарела. Вместо устаревшей сигнатуры лучше пользоваться функцией stream_context_set_options.
tempnamИмена файлов, которые создаёт функция tempnam, теперь длиннее на 13 байтов. Общая длина по-прежнему зависит от платформы.
textdomainПараметр domain стал необязательным. Раньше параметр требовалось указывать при каждом вызове.
textdomainФункция теперь выбрасывает ошибку ValueError, если в аргументе domain передали пустую строку (string).
trigger_errorПередача константы E_USER_ERROR как значения уровня ошибки в параметр error_level устарела. Вместо этого рекомендуют выбрасывать исключение Exception или вызывать функцию exit.
trigger_errorВместо типа bool функции теперь возвращает тип true.
unserializeТеперь выбрасывает ошибку TypeError или ValueError, если элемент allowed_classes параметра options не является ни массивом имён классов, ни логическим значением (bool).
unserializeДесериализация строк с использованием тега в верхнем регистре "S" теперь объявлена устаревшей; вместо него применяют тег в нижнем регистре "s".
xml_parser_set_optionДобавлена настройка XML_OPTION_PARSE_HUGE.
xml_set_character_data_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_character_data_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_default_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_default_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_element_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_element_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_end_namespace_decl_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_end_namespace_decl_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_external_entity_ref_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_external_entity_ref_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_notation_decl_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_notation_decl_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_objectФункция устарела, вместо неё передают правильные значения с типом callable в функции xml_set_.
xml_set_processing_instruction_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_processing_instruction_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_start_namespace_decl_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_start_namespace_decl_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
xml_set_unparsed_entity_decl_handlerПередача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
xml_set_unparsed_entity_decl_handlerКорректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
IntlCalendar::setМетод устарел в пользу методов IntlCalendar::setDate и IntlCalendar::setDateTime.
IntlDateFormatter::createТеперь если значение параметра locale некорректно, выбрасывается ошибка ValueError.
IntlGregorianCalendar::__constructМетод объявлен устаревшим, следует использовать методы IntlGregorianCalendar::createFromDate и IntlGregorianCalendar::createFromDateTime.
mysqli::killМетод mysqli::kill и функция mysqli_kill устарели. Вместо них рекомендуют выполнять SQL-команду KILL.
mysqli::pingМетод mysqli::ping и функция mysqli_ping устарели. Функция reconnect была недоступна с PHP 8.2.0, что делает эту функцию устаревшей.
mysqli::refreshМетод mysqli::refresh и функция mysqli_refresh устарели. Вместо них рекомендуют выполнять SQL-команду FLUSH.
mysqli::store_resultПередача параметра параметра mode устарела. Начиная с PHP 8.1.0 параметр не имеет значения.
NumberFormatter::createТеперь выбрасывается ошибка ValueError, если значение параметра locale недопустимо.
PDO::getAttributeМетод теперь поддерживает получение значения атрибута PDO::ATTR_STRINGIFY_FETCHES.
PDOStatement::setFetchModeВместо общего логического типа bool теперь возвращается конкретный тип true.
Phar::setAliasМетод Phar::setAlias теперь возвращает предварительное значение true.
Phar::setDefaultStubМетод Phar::setDefaultStub теперь возвращает предварительное значение true.
Phar::setStubВместо общего логического типа bool теперь возвращается конкретный тип true.
PharData::setStubВместо общего логического типа bool теперь возвращается конкретный тип true.
DSN-строка подключения через драйвер PDO_ODBCПри передаче пустой строки (string) в качестве аргумента password в конструкторе PDO, pwd не передавался в создаваемую строку подключения, такое поведение было изменено и теперь значение передается в качестве пустой строки. Передача null в качестве аргумента password в конструкторе PDO приводит к тому же поведению, что и раньше.
DSN-строка подключения через драйвер PDO_ODBCИзменено поведение, чтобы игнорировать аргумент имени пользователя и аргумент пароля в конструкторе PDO отдельно, когда DSN содержит uid или pwd. Ранее, если в DSN был передан только uid или pwd, аргумент имени пользователя и аргумент пароля в конструкторе PDO игнорировались.
ReflectionClassConstant::__toStringПрилагаемый комментарий в формате doc теперь включен.
ReflectionGenerator::getFunctionМетод ReflectionGenerator::getFunction теперь может быть вызван после завершения работы генератора.
ReflectionProperty::__toStringМетод теперь включает в значение возврата комментарий в стиле doc-блока, который оставили перед свойством.
ResourceBundle::getПри недопустимом типе смещеиня метод выбросит ошибку TypeError. Метод выбросит ошибку ValueError, если в аргументе index передали значение с типом string и строка оказалсь пустой, или передали значение с типом int, которое не вписывается в 32-битный целочисленный тип.
SoapServer::addFunctionПередача целого числа (int) в метод SoapServer::addFunction, включая константу SOAP_FUNCTIONS_ALL, больше не поддерживается.
SplFileObject::fgetcsvВызов функции без явной передачи аргумента escape устарел.
SplFileObject::fputcsvВызов функции без явной передачи аргумента escape устарел.
SplFileObject::setCsvControlВызов функции без явной передачи аргумента escape устарел.
SplFixedArray::setSizeМетод SplFixedArray::setSize теперь возвращает предварительное значение true.
SplFixedArray::__wakeupМетод устарел, вместо него рекомендуют пользоваться методом SplFixedArray::__unserialize.
SplHeap::insertМетод SplHeap::insert теперь возвращает предварительное значение true.
SplHeap::recoverFromCorruptionМетод SplHeap::recoverFromCorruption теперь возвращает предварительное значение true.
SplPriorityQueue::insertМетод SplPriorityQueue::insert теперь возвращает предварительное значение true.
SplPriorityQueue::recoverFromCorruptionМетод SplPriorityQueue::recoverFromCorruption теперь возвращает предварительное значение true.
tidy::__constructТеперь выбрасывается исключение в случае возникновения ошибки конструктора вместо того, чтобы молча создавать непригодный объект.
XMLReader::openПри передаче недопустимой кодировки в аргументе encoding метод выбросит ошибку ValueError.
XMLReader::XMLПри передаче недопустимой кодировки в аргументе encoding метод выбросит ошибку ValueError.
XMLWriter::startDocumentПри передаче в аргументе encoding кодировки, которая содержит нулевой байт, метод выбросит ошибку ValueError.
XSLTProcessor::importStylesheetДобавили поддержку класса Dom\Document.
XSLTProcessor::importStylesheetМетод теперь выбрасывает ошибку TypeError вместо ошибки ValueError, если таблица стилей stylesheet не XML-объект.
XSLTProcessor::registerPHPFunctionsПри передаче недопустимых названий callback-функций метод теперь выбрасывает ошибку ValueError. При передаче значений, которые не принадлежат типу callable, метод теперь выбрасывает ошибку TypeError.
XSLTProcessor::registerPHPFunctionsПараметр functions теперь принимает callable-выражения, когда набор callback-функций, доступных для вызова из XSLT-структур, ограничивают путём передачи массива (array).
XSLTProcessor::setParameterМетод теперь вместо усечения без предупреждения выбрасывает ошибку ValueError, если хотя бы один аргумент содержит нулевые байты.
XSLTProcessor::setParameterТеперь возможна установка значения параметра, которое содержит как одинарные, так и двойные кавычки. До PHP 8.4.0 это выдавало предупреждение.
XSLTProcessor::transformToDocВместо предупреждения метод теперь выбрасывает ошибку Error, если callback-функцию невозможно вызвать.
XSLTProcessor::transformToDocДобавили поддержку объектов класса Dom\Document.
XSLTProcessor::transformToUriВместо предупреждения метод теперь выбрасывает ошибку Error, если callback-функцию невозможно вызвать.
XSLTProcessor::transformToUriДобавили поддержку объектов класса Dom\Document.
XSLTProcessor::transformToXmlВместо предупреждения метод теперь выбрасывает ошибку Error, если callback-функцию невозможно вызвать.
XSLTProcessor::transformToXmlДобавили поддержку объектов класса Dom\Document.
8.3.0DateInterval::__constructТеперь вместо исключения Exception выбрасывается исключение DateMalformedIntervalStringException.
DateInterval::createFromDateStringМетод DateInterval::createFromDateString теперь выбрасывает исключение DateMalformedIntervalStringException, если передали строку в недопустимом формате. Раньше метод возвращал значение false и выдавал предупреждение. Функция date_interval_create_from_date_string не изменилась.
DatePeriod::__constructВместо исключения Exception теперь выбрасывается исключение DateMalformedPeriodStringException.
DateTime::__constructПри передаче строки с недопустимой датой и временем вместо Exception теперь выбрасывается исключение DateMalformedStringException.
DateTimeInterface::getTimestampПри выходе за пределы диапазона метод теперь выбрасывает ошибку DateRangeError.
DateTime::modifyМетод DateTime::modify теперь выбрасывает исключение DateMalformedStringException, если передали строку в недопустимом формате. Раньше метод возвращал значение false и выдавал предупреждение. Функция date_modify не изменилась.
DateTime::subПри попытке выполнить неподдерживаемую операцию метод DateTime::sub теперь вместо предупреждения выбрасывает исключение DateInvalidOperationException. Функция date_sub не изменилась.
DateTimeImmutable::__constructПри передаче строки с недопустимой датой и временем вместо Exception теперь выбрасывается исключение DateMalformedStringException.
DateTimeImmutable::modifyПри передаче строки в недопустимом формате вместо предупреждения метод теперь выбрасывает исключение DateMalformedStringException.
DateTimeImmutable::subПри попытке выполнить неподдерживаемую операцию вместо предупреждения метод теперь выбрасывает исключение DateInvalidOperationException.
DateTimeZone::__constructПри передаче недопустимых значений часового пояса вместо общего исключения Exception метод теперь выбрасывает исключение DateInvalidTimeZoneException.
DOMCharacterData::afterВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::afterВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::appendDataТеперь у этой функции есть предварительный логический (true) тип возвращаемого значения.
DOMCharacterData::beforeВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::replaceWithВызов метода на узле без родителя теперь запрещён, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::afterВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::afterВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::beforeВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::replaceWithВызов метода на узле без родителя теперь запрещён, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::appendВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::createAttributeNSВызов этого метода без указания префикса теперь выберет префикс, вместо того чтобы использовать пространство имен по умолчанию. Ранее это создавало атрибут без префикса и неверно применяло пространство имён к элементу-владельцу, поскольку пространства имен по умолчанию не применяются к атрибутам.
DOMDocument::createAttributeNSВызов этого метода с префиксом, который уже был объявлен на элементе-владельце с другим URI пространства имён, теперь изменит новый префикс, чтобы избежать создания конфликтов пространства имён. Это приводит поведение в соответствие со спецификацией DOM. Previously this threw a DOMException with code DOM_NAMESPACE_ERR.
DOMDocument::loadТеперь функция имеет предварительный логический (bool) тип возвращаемого значения.
DOMDocument::loadHTMLТеперь функция имеет предварительный логический (bool) тип возвращаемого значения.
DOMDocument::loadHTMLFileТеперь функция имеет предварительный логический (bool) тип возвращаемого значения.
DOMDocument::loadXMLТеперь функция имеет предварительный логический (bool) тип возвращаемого значения.
DOMDocument::prependВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::replaceChildrenВызов метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::saveXMLПараметры метода теперь поддерживают константу LIBXML_NOXMLDECL.
DOMDocumentFragment::appendВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocumentFragment::prependВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMDocumentFragment::replaceChildrenВызов метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::afterВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::afterВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::appendВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::beforeВызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::prependВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::replaceChildrenВызов метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMElement::replaceWithВызов метода на узле без родителя теперь запрещён, чтобы привести поведение в соответствие со спецификацией DOM. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::appendВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::prependВызов этого метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::replaceChildrenВызов метода на узле без документа владельца теперь работает. Раньше метод выбрасывал исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
FFI::castСтатический вызов метода FFI::cast устарел.
FFI::cdefФункции языка Си, возвращающие void, возвращают PHP null вместо FFI\CType::TYPE_VOID.
FFI::loadМетод FFI::load теперь разрешён в скриптах предзагрузки, когда текущий пользователь системы совпадает с пользователем, определённым в директиве конфигурации opcache.preload_user.
FFI::newСтатический вызов метода FFI::new устарел.
FFI::typeСтатический вызов метода FFI::type устарел.
array_padДо PHP 8.3 можно было добавить не более 1 048 576 элементов. Теперь это ограниченно только размером массива.
array_productТеперь выдаёт ошибку уровня E_WARNING, когда значения массива (array) невозможно преобразовать в целое число (int) или число с плавающей точкой (float). Раньше массивы (array) и объекты (object) игнорировались, тогда как остальные значения приводились к целому числу (int). Больше того, объекты, определяющие числовое приведение (например, объекты класса GMP), теперь приводятся, а не игнорируются.
array_sumТеперь выдаёт ошибку уровня E_WARNING, когда значения массива (array) невозможно преобразовать в целое число (int) или число с плавающей точкой (float). Раньше массивы (array) и объекты (object) игнорировались, тогда как остальные значения приводились к целому числу (int). Больше того, объекты, определяющие числовое приведение (например, объекты класса GMP), теперь приводятся, а не игнорируются.
assertINI-настройки assert. устарели.
assert_optionsФункция assert_options устарела.
class_aliasФункция class_alias теперь умеет создавать псевдоним для внутреннего класса.
curl_getinfoДобавлены опции CURLINFO_CAINFO и CURLINFO_CAPATH.
dba_fetchВызов функции dba_fetch с параметром dba в качестве третьего аргумента устарел.
easter_dateНа 64-битных системах параметр year теперь принимает значения в диапазоне от 1970 до 2 000 000 000.
fgetcsvДля последнего поля, которое состоит из единственного незакрытого символа-ограничителя, вместо строки с одним нулевым байтом теперь возвращается пустая строка.
fileФункция выбрасывает ошибку ValueError при передаче в параметр flags недопустимого флага.
gc_statusФункция gc_status теперь возвращает следующие дополнительные поля: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time" и "free_time".
get_classПри вызове без аргументов функция get_class теперь выдаёт ошибку уровня E_DEPRECATED; раньше вызов функции внутри класса возвращал название класса.
get_parent_classФункция get_parent_class теперь выдаёт предупреждение уровня E_DEPRECATED, если её вызывают без аргументов; раньше функция возвращала название класса, если её вызывали внутри класса.
highlight_fileИзменился результирующий HTML.
highlight_stringИзменилась результирующая HTML-разметка.
imagerotateУдалили ненужный параметр ignore_transparent.
ldap_connectТеперь вызов функции ldap_connect с отдельным указанием имени хоста hostname и порта port устарел.
mb_convert_caseРеализовали правила условного регистра для греческой буквы сигма, которые применяются только к режимам MB_CASE_LOWER и MB_CASE_TITLE, но не к режимам MB_CASE_LOWER_SIMPLE и MB_CASE_TITLE_SIMPLE.
mb_decode_mimeheaderПодчеркивания преобразовываются в пробелы по правилам стандарта RFC 2047.
mb_encode_mimeheaderNUL-байты больше не отбрасываются при кодировании строк по правилам синтаксиса QP-кодировки (англ. Quoted-Printable), а кодируются как =00. Нулевой байт — байт со значением 0, который в наборах символов назначают нулевой кодовой точке.
mb_strimwidthПередача отрицательного значения в параметр width функции mb_strimwidth устарела.
mb_strtolowerРеализовали правила условного регистра для греческой буквы сигма.
mt_srandПараметр seed теперь принимает значение null.
number_formatДобавили ​​обработку отрицательных значений для параметра decimals.
odbc_autocommitПараметр enable теперь принимает значение null.
openssl_pkey_newДобавлена поддержка создания ключей EC с настраиваемыми параметрами EC. В частности, с введением опций EC: p, a, b, seed, generator, g_x, g_y, cofactor и order.
password_hashФункция password_hash теперь устанавливает базовое исключение Random\RandomException в качестве значения свойства Exception::$previous, если выбрасывается ошибка ValueError из-за сбоя во время генерации соли.
pg_convertФункция теперь выбрасывает исключение ValueError или TypeError, если значение или тип поля не соответствуют правильному типу СУБД PostgreSQL; раньше функция выдавала ошибку уровня E_WARNING.
pg_fetch_objectФункция теперь выбрасывает исключение a ValueError, если в параметр constructor_args передали не пустой массив, а у класса нет конструктора; раньше функция выбрасывала исключение Exception.
pg_fetch_resultПараметр row теперь принимает значение null.
pg_field_is_nullПараметр row теперь принимает значение null.
pg_field_prtlenПараметр row теперь принимает значение null.
pg_insertФункция теперь выбрасывает исключение ValueError, если заданная таблица недопустима; раньше функция выдавала ошибку уровня E_WARNING.
pg_insertФункция теперь выбрасывает исключения ValueError или TypeError, если значение или тип поля не соответствуют правильному типу СУБД PostgreSQL; раньше функция выдавала ошибку уровня E_WARNING.
pg_traceДобавлен параметр trace_mode.
posix_eaccessПроверяет права действующего пользователя/группы на файл, в отличие от функции posix_access, которая проверяет реального пользователя/группу.
posix_getrlimitДобавили необязательный параметр resource.
posix_isattyОшибки уровня E_WARNING теперь выдаются при преобразованиях целых чисел в соответствии с обычной семантикой преобразования типов PHP.
posix_ttynameОшибки уровня E_WARNING теперь выдаются при преобразованиях целых чисел в соответствии с обычной семантикой преобразования типов PHP.
posix_ttynameПри недопустимых целочисленных значениях параметра file_descriptor теперь выдаётся ошибка уровня E_WARNING.
proc_closeФункция proc_close теперь возвращает правильный код завершения, даже если сначала вызвали функцию proc_get_status. Раньше в этом случае возвращалось значение -1.
proc_get_statusВ массив возврата добавили запись "cached". До PHP 8.3.0 только первый вызов возвращал реальной код завершения. Запись "cached" указывает на то, что код завершения закешировался.
proc_openТеперь функция выбрасывает ошибку ValueError, если значение параметра command представляет собой массив, в котором нет хотя бы одного непустого элемента.
rangeФункция range теперь создаёт массив (array) байтов, если в оба параметра start и end передали строки. Раньше при передаче числовой строки хотя бы в одном граничном значении другое граничное значение неявно приводились к типу int.
rangeФункция теперь выдаёт ошибку уровня E_WARNING, если в параметр start или end передали строку, которая неявно приводится к типу int, поскольку другое граничное значение — число.
rangeФункция теперь выдаёт ошибку уровня E_WARNING, если в параметр start или end передали нечисловую строку размером больше одного байта.
rangeФункция теперь выдаёт ошибку уровня E_WARNING, если в параметр start или end передали пустую строку.
rangeПараметр step теперь интерпретирует значения float без дробной части как значения int.
rangeФункция теперь выбрасывает ошибку ValueError при передаче в параметр step отрицательного значения для возрастающего диапазона.
rangeФункция теперь выбрасывает ошибку ValueError, если в параметр step передали неконечное числовое значение.
rangeФункция теперь выбрасывает ошибку TypeError, если в параметр start или end передали значение array, object или resource. Раньше такие значения неявно приводились к значению int.
srandПараметр seed теперь принимает значение null.
str_getcsvДля последнего поля, которое состоит из единственного незакрытого символа-ограничителя, вместо строки с одним нулевым байтом теперь возвращается пустая строка.
stream_notification_callbackРеализована поддержка STREAM_NOTIFY_COMPLETED; ранее PHP никогда не вызывали это уведомление.
strrchrДобавлен параметр before_needle.
strtokФункция теперь выдаёт ошибку уровня E_WARNING, когда параметр token не указали.
unserializeФункция теперь выдаёт ошибку уровня E_WARNING, когда входная строка содержит неиспользованные данные.
unserializeФункция теперь выдаёт ошибку уровня E_WARNING, если строку невозможно десериализовать; раньше выдавалась ошибка уровня E_NOTICE.
xml_parser_get_optionТеперь функция возвращает логическое значение для логических настроек.
xml_parser_set_optionТеперь параметр value также принимает логические значения. Настройки XML_OPTION_CASE_FOLDING и XML_OPTION_SKIP_WHITE теперь логические.
IntlBreakIterator::setTextТеперь метод возвращает false в случае ошибки; ранее он возвращал null.
IntlChar::enumCharNamesТеперь метод возвращает false в случае ошибки; ранее он возвращал null.
IntlDateFormatter::setTimeZoneФункция теперь возвращает true в случае успешного выполнения; ранее она возвращала null.
mysqli_result::fetch_objectТеперь функция выбрасывает исключение ValueError, когда аргумент constructor_args не пуст, а класс class не имеет конструктора. Ранее функция выбрасывала исключение Exception.
mysqli::pollТеперь функция выбрасывает исключение ValueError, если не передан ни аргумент read, ни аргумент error.
Phar::setStubВызов метода Phar::setStub с ресурсом (resource) в первом аргументе УСТАРЕЛ. Вместо передачи ресурса и аргумента length теперь вызывают: $phar->setStub(stream_get_contents($resource));.
ReflectionClass::getStaticPropertiesТип возвращаемого значения метода ReflectionClass::getStaticProperties был изменён на array с ?array.
ReflectionProperty::setValueВызов метода с одним аргументом является устаревшим, вместо этого используйте ReflectionProperty::setValue(null, $value) для статических свойств.
SQLite3::enableExceptionsМетод SQLite3::enableExceptions выдаст предупреждение уровня E_DEPRECATED, если при вызове метода значение параметра enable равно false.
ZipArchive::addFileДобавили константу ZipArchive::FL_OPEN_FILE_NOW.
ZipArchive::addFileДобавили константы, которые устанавливают значение длины: ZipArchive::LENGTH_TO_END и ZipArchive::LENGTH_UNCHECKED.
ZipArchive::addGlobДобавили константу ZipArchive::FL_OPEN_FILE_NOW.
ZipArchive::replaceFileДобавили константу ZipArchive::FL_OPEN_FILE_NOW.
ZipArchive::replaceFileДобавили константы, которые задают значение длины: ZipArchive::LENGTH_TO_END и ZipArchive::LENGTH_UNCHECKED.
8.2.9DateTimeImmutable::createFromFormatСпецификатор (пробел) теперь также поддерживает символы неразрывного пробела NBSP (U+A0) и узкого неразрывного пробела NNBSP (U+202F).
8.2.1SplFileObject::__toStringИзменён с псевдонима SplFileObject::fgets на реализацию SplFileObject::current, которая возвращает строку CSV, когда установлен флаг SplFileObject::READ_CSV.
8.2.0ArrayIterator::asortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayIterator::ksortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayIterator::natcasesortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayIterator::natsortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayIterator::uasortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayIterator::uksortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::asortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::ksortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::natcasesortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::natsortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::uasortВместо общего логического типа bool теперь возвращается конкретный тип true.
ArrayObject::uksortВместо общего логического типа bool теперь возвращается конкретный тип true.
DateInterval::__constructИз свойств объекта интервала будут видны только y в f, invert и days, включая новое логическое свойство from_string.
DateInterval::createFromDateStringМетод создаёт объект DateInterval, в котором останутся видимыми только свойства from_string и date_string.
DatePeriod::__constructДобавили константу DatePeriod::INCLUDE_END_DATE.
DateTime::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
DateTimeInterface::formatДобавили символы форматирования X и x.
DateTimeImmutable::createFromFormatДобавили спецификаторы X и x для параметра format.
DateTimeImmutable::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
DateTimeImmutable::getLastErrorsДо версии PHP 8.2.0 метод не возвращал false, когда не было предупреждений или ошибок. Вместо этого метод каждый раз возвращал задокументированную структуру массива.
FilesystemIterator::__constructДо версии PHP 8.2.0, константа FilesystemIterator::SKIP_DOTS всегда была установлена и не могла быть удалена.
array_walkВместо общего логического типа bool теперь возвращается конкретный тип true.
array_walk_recursiveВместо общего логического типа bool теперь возвращается конкретный тип true.
arsortВместо общего логического типа bool теперь возвращается конкретный тип true.
asortВместо общего логического типа bool теперь возвращается конкретный тип true.
curl_getinfoДобавлены опции CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
curl_multi_setoptДобавили константу CURLMOPT_MAX_CONCURRENT_STREAMS.
date_parse_from_formatПри передаче нулевых байтов в параметр datetime функция теперь выбрасывает ошибку ValueError; раньше функция молча игнорировала нулевые байты.
dba_fetchНеобязательный параметр skip функции dba_fetch теперь находится в конце в соответствии с пользовательской семантикой PHP; перегруженная сигнатура по-прежнему принимается, но не рекомендуется.
dba_openДобавлен параметр flags.
dba_openПараметр handler теперь допускает значение null.
dba_popenДобавлен параметр flags.
getimagesizeФункция теперь возвращает фактические размеры, биты и каналы изображений в формате AVIF; раньше размеры сообщались как 0x0, а биты и каналы не сообщались вообще.
idateДобавили символы форматирования: N — день недели по стандарту ISO-8601 и o — год по стандарту ISO-8601.
iterator_countТип параметра iterator расширили с Traversable до Traversablearray.
iterator_to_arrayТип параметра iterator был расширен с Traversable до Traversablearray.
krsortВместо общего логического типа bool теперь возвращается конкретный тип true.
krsortТеперь в режиме SORT_REGULAR функция сравнивает числовые строки по стандартным правилам PHP 8.
ksortВместо общего логического типа bool теперь возвращается конкретный тип true.
ksortТеперь в режиме SORT_REGULAR функция сравнивает числовые строки по стандартным правилам PHP 8.
lcfirstПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
mb_convert_encodingФункция mb_convert_encoding больше не возвращает следующие нетекстовые кодировки: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" и "8 bit".
mb_convert_kanaФункция теперь выбрасывает ошибку ValueError при недопустимой комбинации режимов в параметре mode.
mb_detect_encodingФункция mb_detect_encoding больше не возвращает следующие нетекстовые кодировки: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" и "8 bit".
natcasesortВместо общего логического типа bool теперь возвращается конкретный тип true.
natsortВместо общего логического типа bool теперь возвращается конкретный тип true.
openlogТеперь функция при кажом вызове возвращает true. Раньше функция возвращала false, если возникла ошибка.
pg_closeВместо общего логического типа bool теперь возвращается конкретный тип true.
pg_untraceВместо общего логического типа bool теперь возвращается конкретный тип true.
random_bytesПри сбое генератора криптографически безопасных псевдослучайных чисел (англ. Cryptographically Secure Pseudorandom Number Generator, CSPRNG) функция теперь выбрасывает исключение Random\RandomException. Раньше функция выбрасывала исключение Exception.
random_intТеперь при сбое генератора CSPRNG функция будет выбрасывать исключение Random\RandomException. Раньше функция выбрасывала исключение Exception.
rsortВместо общего логического типа bool теперь возвращается конкретный тип true.
setcookieДата cookie теперь устанавливается в формате 'D, d M Y H:i:s \G\M\T'; раньше дата устанавливалась в формате 'D, d-M-Y H:i:s T'.
snmp_set_enum_printВместо общего логического типа bool теперь возвращается конкретный тип true.
snmp_set_oid_output_formatВместо общего логического типа bool теперь возвращается конкретный тип true.
snmp_set_quick_printВместо общего логического типа bool теперь возвращается конкретный тип true.
snmp_set_valueretrievalВместо общего логического типа bool теперь возвращается конкретный тип true.
sortВместо общего логического типа bool теперь возвращается конкретный тип true.
str_ireplaceПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII. Байты, которые не относятся к кодировке ASCII, сравнятся по значению байта.
str_splitФункция теперь возвращает пустой массив (array), если параметр string не указали; раньше возвращался массив (array), который содержал одну пустую строку.
strcasecmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
strcmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
striposПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII. Байты, которые не относятся к кодировке ASCII, сравнятся по значению байта.
stristrПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII. Байты, которые не относятся к кодировке ASCII, сравнятся по значению байта.
strnatcasecmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
strnatcmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
strncasecmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
strncmpФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
strriposПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII. Байты, которые не относятся к кодировке ASCII, сравнятся по значению байта.
strtolowerПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
strtoupperПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
substr_compareФункция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.
uasortВместо общего логического типа bool теперь возвращается конкретный тип true.
ucfirstПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
ucwordsПриведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
uksortВместо общего логического типа bool теперь возвращается конкретный тип true.
usortВместо общего логического типа bool теперь возвращается конкретный тип true.
utf8_decodeФункция устарела.
utf8_encodeФункция устарела.
var_exportНазвания экспортируемых классов стали абсолютными; раньше ведущий обратный слеш опускался.
IntlCalendar::clearВместо общего логического типа bool теперь возвращается конкретный тип true.
IntlCalendar::setВместо общего логического типа bool теперь возвращается конкретный тип true.
IntlCalendar::setFirstDayOfWeekВместо общего логического типа bool теперь возвращается конкретный тип true.
IntlCalendar::setLenientВместо общего логического типа bool теперь возвращается конкретный тип true.
IntlCalendar::setRepeatedWallTimeOptionВместо общего логического типа bool теперь возвращается конкретный тип true.
IntlCalendar::setSkippedWallTimeOptionВместо общего логического типа bool теперь возвращается конкретный тип true.
ReflectionEnum::getBackingTypeТип значения возврата теперь равен ?ReflectionNamedType; раньше тип возврата был ?ReflectionType.
8.1.14SplFileObject::__toStringИзменён с псевдонима SplFileObject::fgets на реализацию SplFileObject::current, которая возвращает строку CSV, когда установлен флаг SplFileObject::READ_CSV.
8.1.8DateTime::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
DateTimeImmutable::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
date_parse_from_formatПри передаче нулевых байтов в параметр datetime функция теперь выбрасывает ошибку ValueError; раньше функция молча игнорировала нулевые байты.
8.1.0DateTime::setTimeПоведение с двойными существующими часами (во время перехода на летнее время) изменилось. Ранее PHP выбирал второе вхождение (после перехода на летнее время), а не первое (до перехода на летнее время).
DateTimeImmutable::setTimeИзменилось поведение с повторным появлением одного и того же часа при переходе с летнего времени на зимнее, когда стрелки часов переводят на один час назад. Раньше PHP выбирал второе вхождение — момент после перехода на зимнее время, а теперь выбирает первое — до перехода.
DateTimeZone::getTransitionsЗначение параметра timestampEnd по умолчанию изменено на 2147483647. Ранее оно было PHP_INT_MAX.
DirectoryIterator::keyПри ошибке инициализации итератора теперь выдаётся ошибка Error; ранее метод возвращал значение false.
DOMDocument::createCommentВ случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение false.
DOMDocument::createDocumentFragmentВ случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение false.
DOMDocument::createTextNodeВ случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение false.
currentВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
date_sunriseФункция устарела, пользуйтесь вместе неё функцию date_sun_info.
date_sunsetФункция устарела, пользуйтесь вместе неё функцию date_sun_info.
dba_popenПараметр handler теперь допускает значение null.
defineПараметр value теперь принимает объекты.
endВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
exif_imagetypeДобавлена поддержка AVIF.
finfo_bufferПараметр finfo теперь принимает объект finfo; раньше параметр ждал ресурс (resource).
finfo_closeФункция стала NOP (англ. No Operation) и ни на что не влияет.
finfo_closeПараметр finfo теперь принимает объект finfo; раньше параметр ждал ресурс (resource).
finfo_fileПараметр finfo теперь принимает объект finfo; раньше параметр ждал ресурс (resource).
finfo_openВозвращает экземпляр finfo; ранее возвращался ресурс (resource).
finfo_set_flagsПараметр finfo теперь принимает объект finfo; раньше параметр ждал ресурс (resource).
fputcsvДобавили необязательный параметр eol.
ftp_allocПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_appendПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_cdupПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_chdirПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_chmodПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_closeПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_connectВозвращает экземпляр FTP\Connection; ранее возвращался ресурс (resource).
ftp_deleteПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_execПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_fgetПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_fputПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_getПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_get_optionПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_loginПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_mdtmПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_mkdirПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_mlsdПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nb_continueПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nb_fgetПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nb_fputПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nb_getПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nb_putПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_nlistПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_pasvПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_putПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_pwdПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_rawПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_rawlistПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_renameПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_rmdirПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_set_optionПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_siteПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_sizeПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
ftp_ssl_connectТеперь функция возвращает экземпляр класса FTP\Connection; раньше возвращался ресурс (resource).
ftp_systypeПараметр ftp теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
get_html_translation_tableЗначение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
gmp_initДля строковых аргументов num добавили поддержку явных восьмеричных префиксов 0o и 0O. Интерпретацию таких префиксов, когда значение основания base равно 0, тоже добавили.
hashДобавили параметр options.
hash_algosДобавили поддержку алгоритмов MurmurHash3 и xxHash.
hash_fileДобавили параметр options.
hash_initДобавили параметр options.
html_entity_decodeЗначение по умолчанию для параметра flags изменили с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlentitiesЗначение по умолчанию параметра flags изменили с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlspecialcharsЗначение по умолчанию для параметра flags изменили с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlspecialchars_decodeЗначение по умолчанию для параметра flags изменили с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
imagecharПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imagecharupПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imagefilledpolygonПараметр num_points устарел.
imagefontheightПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imagefontwidthПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imageloadfontФункция теперь возвращает экземпляр класса GdFont; раньше возвращалось значение с типом int.
imageopenpolygonПараметр num_points устарел.
imagepolygonПараметр num_points устарел.
imagestringПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imagestringupПараметр font теперь принимает как экземпляр класса GdFont, так и целое число (int); раньше параметр принимал только целое число (int).
imagetypesДобавлена константа IMG_AVIF.
ini_setПараметр value теперь принимает скалярные типы, включая null. Раньше параметр принимал только строковые (string) значения.
json_last_errorДобавили константу JSON_ERROR_NON_BACKED_ENUM.
keyВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
ldap_addПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_add_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_add_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_bindПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_bind_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_bind_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_compareПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_connectВозвращает экземпляр LDAP\Connection; ранее возвращался ресурс (resource).
ldap_count_entriesПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_count_entriesПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_count_referencesПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_count_referencesПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_deleteПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_delete_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_delete_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_errnoПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_errorПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_exopПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_exop_passwdПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_exop_refreshПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_exop_whoamiПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_first_attributeПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_first_attributeПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_first_entryПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_first_entryПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_first_entryВозвращает экземпляр класса LDAP\ResultEntry; раньше возвращался ресурс (resource).
ldap_free_resultПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_get_attributesПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_attributesПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_get_dnПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_dnПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_get_entriesПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_entriesПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_get_optionПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_valuesПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_valuesПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_get_values_lenПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_get_values_lenПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_listПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_listВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_mod_addПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_delПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_replaceПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_modify_batchПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_add_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_add_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_mod_del_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_del_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_mod_replace_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_mod_replace_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_next_attributeПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_next_attributeПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_next_entryПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_next_entryПараметр entry теперь принимает объект LDAP\ResultEntry; раньше параметр ждал ресурс (resource) ldap result entry.
ldap_next_entryВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_parse_exopПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_parse_exopПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_parse_resultПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_parse_resultПараметр result теперь принимает объект LDAP\Result; раньше параметр ждал ресурс (resource) ldap result.
ldap_readПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_readВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_renameПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_rename_extПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_rename_extВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_sasl_bindПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_searchПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_searchВозвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
ldap_set_optionПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_set_rebind_procПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
ldap_unbindПараметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
mb_check_encodingВызов функции с null в качестве параметра value или без аргумента устарело.
mhashФункция устарела. Вместо неё рекомендуют пользоваться функциями семейства функции hash_*().
mhash_countФункция устарела. Вместо неё рекомендуют пользоваться функциями семейства функции hash_*().
mhash_get_block_sizeФункция устарела. Вместо неё рекомендуют пользоваться функциями семейства функции hash_*().
mhash_get_hash_nameФункция устарела. Вместо неё рекомендуют пользоваться функциями семейства функции hash_*().
mhash_keygen_s2kФункция устарела. Вместо неё рекомендуют пользоваться функциями семейства функции hash_*().
nextВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
odbc_result_allФункция устарела.
openssl_cms_encryptАлгоритм шифрования по умолчанию (cipher_algo) теперь AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Ранее использовался алгоритм PKCS7/CMS (OPENSSL_CIPHER_RC2_40).
openssl_decryptПараметр tag теперь принимает значение null.
openssl_pkcs7_encryptАлгоритмом шифрования по умолчанию, который принимает параметр cipher_algo, стал AES-128-CBC — флаг OPENSSL_CIPHER_AES_128_CBC. Раньше алгоритмом по умолчанию был PKCS7/CMS — флаг OPENSSL_CIPHER_RC2_40.
pg_affected_rowsПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_cancel_queryПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_client_encodingПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_closeПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_connectФункция теперь возвращает экземпляр класса PgSql\Connection; раньше возвращался ресурс (resource).
pg_connect_pollПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_connection_busyПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_connection_resetПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_connection_statusПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_consume_inputПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_convertПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_copy_fromПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_copy_toПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_dbnameПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_deleteПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_end_copyПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_escape_byteaПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_escape_identifierПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_escape_literalПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_escape_stringПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_executeФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_executeПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_fetch_allПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_all_columnsПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_arrayПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_assocПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_objectПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_resultПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_fetch_rowПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_is_nullПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_nameПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_numПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_prtlenПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_sizeПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_tableПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_typeПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_field_type_oidПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_flushПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_free_resultПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_get_notifyПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_get_pidПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_get_resultФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_get_resultПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_hostПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_insertФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_insertПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_last_errorПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_last_noticeПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_last_oidПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_lo_closeПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_createПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_lo_exportПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_lo_importПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_lo_openВозвращает экземпляр PgSql\Lob; ранее возвращался ресурс (resource).
pg_lo_openПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_lo_readПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_read_allПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_seekПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_tellПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_truncateПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_lo_unlinkПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_lo_writeПараметр lob теперь принимает объект PgSql\Lob; раньше параметр принимал тип resource.
pg_meta_dataПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_num_fieldsПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_num_rowsПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_optionsПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_parameter_statusПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_pconnectФункция теперь возвращает экземпляр класса PgSql\Connection; раньше возвращался ресурс (resource).
pg_pingПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_portПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_prepareФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_prepareПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_put_lineПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_queryФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_queryПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_query_paramsФункция возвращает экземпляр класса PgSql\Result; раньше функция возвращала ресурс (resource).
pg_query_paramsПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_result_errorПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_result_error_fieldПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_result_seekПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_result_statusПараметр result теперь принимает объект PgSql\Result; раньше параметр принимал тип resource.
pg_selectПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_send_executeПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_send_prepareПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_send_queryПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_send_query_paramsПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_set_client_encodingПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_set_error_verbosityПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_socketПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_traceПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_transaction_statusПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_ttyПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_untraceПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_updateПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
pg_versionПараметр connection теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
prevВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
resetВызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars, либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator.
snmp3_getПараметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.
snmp3_getnextПараметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.
snmp3_real_walkПараметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.
snmp3_walkПараметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.
stream_selectПараметр microseconds теперь принимает значение null.
strptimeФункция устарела. Вместо неё рекомендуют пользоваться функцией date_parse_from_format, чтобы разобрать дату и время независимо от региональных настроек, или методом IntlDateFormatter::parse, чтобы разбор зависел от локали.
IntlDateFormatter::createТеперь параметры dateType и timeType необязательны.
MultipleIterator::currentТеперь выбрасывается исключение RuntimeException, если MultipleIterator::key вызывается на недопустимом итераторе. Ранее вместо этого возвращалось значение false.
MultipleIterator::keyТеперь выбрасывается исключение RuntimeException, если MultipleIterator::key вызывается на недопустимом итераторе. Ранее вместо этого возвращалось значение false.
mysqli_driver::$report_modeДля режима сообщений об ошибках значение по умолчанию теперь равно MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Раньше значением по умолчанию было MYSQLI_REPORT_OFF.
mysqli_result::fetch_allТеперь также доступно при сборке с libmysqlclient.
mysqli_stmt::executeДобавлен необязательный параметр params.
mysqli_stmt::next_resultТеперь также доступно при сборке с libmysqlclient.
mysqli::__constructМетод mysqli::connect теперь возвращает значение true вместо null в случае успешного выполнения.
mysqli::$client_infoВызов функции mysqli_get_client_info с аргументом mysql устарел. Функции никогда не требовался этот параметр, но она ошибочно разрешала передавать для него аргумент и обрабатывала параметр как необязательный.
mysqli::$client_infoОбъектно-ориентированный стиль вызова метода mysqli::get_client_info устарел.
mysqli::initОбъектно-ориентированный стиль вызова метода mysqli::init устарел. Замените вызов метода parent::init вызовом метода parent::__construct.
Phar::buildFromDirectoryPhar::buildFromDirectory больше не возвращает значение false.
Phar::buildFromIteratorPhar::buildFromIterator больше не возвращает значение false.
PharData::buildFromDirectoryPharData::buildFromDirectory больше не возвращает значение false.
PharData::buildFromIteratorPharData::buildFromIterator больше не возвращает значение false.
ReflectionFunctionAbstract::isStaticМетод был расширен. Ранее он был определён только в ReflectionMethod.
ReflectionClassConstant::getNameМетод выдаёт исключение Error, если свойство name не проинициализировали. Раньше в случае ошибки метод возвращал false.
ReflectionExtension::__cloneМетод больше не является окончательным (final).
ReflectionFunctionAbstract::__cloneМетод больше не является окончательным (final).
ReflectionMethod::setAccessibleВызов этого метода ни на что не влияет; все методы по умолчанию доступны для вызова.
ReflectionParameter::__cloneМетод больше не окончательный (final).
ReflectionProperty::__cloneМетод больше не окончательный (final).
ReflectionProperty::getValueДоступ к закрытым и защищённым свойствам можно сразу же получить с помощью метода ReflectionProperty::getValue. Ранее их нужно было сделать доступными с помощью метода ReflectionProperty::setAccessible; в противном случае выбрасывалось исключение ReflectionException.
ReflectionProperty::setAccessibleВызов этого метода ни на что не влияет; все свойства по умолчанию доступны.
ReflectionProperty::setValueДоступ к закрытым и защищённым свойствам сразу получают методом ReflectionProperty::getValue. Раньше свойства требовалось сделать доступными методом ReflectionProperty::setAccessible, иначе метод выбрасывал исключение ReflectionException.
ReflectionZendExtension::__cloneМетод больше не является окончательным (final).
SimpleXMLElement::currentЕсли SimpleXMLElement::current вызывается на некорректном итераторе, то теперь выдаётся ошибка Error; ранее возвращалось значение null.
SimpleXMLElement::keyВ случае вызова метода SimpleXMLElement::key на некорректном итераторе теперь выдаётся ошибка Error; ранее возвращалось значение false.
SplFileObject::fputcsvДобавили необязательный параметр eol.
SplObjectStorage::currentМетод SplObjectStorage::current теперь выбрасывает исключение Error, если текущая позиция недопустима. Ранее вместо этого возвращалось значение false.
SQLite3Result::finalizeМетод теперь выбрасывает ошибку Error, если объект неправильно инициализирован; ранее возвращалось значение false.
SQLite3Stmt::closeМетод теперь выбрасывает ошибку Error, если объект неправильно инициализирован; ранее возвращалось значение false.
8.0.21DateTime::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
DateTimeImmutable::createFromFormatТеперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал.
date_parse_from_formatПри передаче нулевых байтов в параметр datetime функция теперь выбрасывает ошибку ValueError; раньше функция молча игнорировала нулевые байты.
8.0.5imageinterlaceФункция imageinterlace теперь возвращает значение с типом bool; раньше функция возвращала значение с типом int, ненулевое для изображений с интерлейсингом, иначе 0.
8.0.3DOMDocument::getElementsByTagNameNSnamespace теперь допускает значение null.
DOMElement::getElementsByTagNameNSnamespace теперь допускает значение null.
DOMImplementation::createDocumentnamespace теперь допускает значение null.
finfo::__constructmagic_database теперь допускает значение null.
bind_textdomain_codesetПараметр codeset теперь принимает значение null. Раньше было невозможно получить текущую установленную кодировку.
bindtextdomainПараметр directory теперь принимает значение null. Раньше было невозможно получить текущий установленный каталог.
finfo_openmagic_database теперь допускает значение null.
imagegdПараметр file теперь принимает значение null.
imagegd2Параметр file теперь принимает значение null.
SoapClient::__setLocationlocation теперь допускает значение null.
SoapVar::__constructtypeName, typeNamespace, nodeName и nodeNamespace теперь допускают значения null.
8.0.0CURLFile::__constructПараметры mime_type и posted_filename теперь принимают значение null; раньше значение по умолчанию равнялось 0.
DateInterval::__constructОбозначение недель W теперь разрешено комбинировать с обозначением дней D.
DateTime::createFromImmutableМетод теперь возвращает экземпляр текущего класса — на котором вызвали метод; раньше метод создавал новый экземпляр класса DateTime.
DateTimeInterface::formatДобавили символ форматирования p.
DateTimeInterface::getTimestampФункции больше не возвращают значение false, если возникла ошибка.
DateTimeImmutable::createFromMutableМетод теперь возвращает экземпляр текущего класса — на котором вызвали метод; раньше метод создавал новый экземпляр класса DateTimeImmutable.
DateTimeZone::listIdentifiersДо этой версии при ошибке возвращалось значение false.
Directory::closeПараметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.
Directory::readПараметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.
Directory::rewindПараметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.
DirectoryIterator::__constructТеперь метод выбрасывает ошибку ValueError, если в параметр directory передали пустую строку; раньше выбрасывалось исключение RuntimeException.
DOMDocument::loadПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMDocument::loadHTMLПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMDocument::loadHTMLFileПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMDocument::loadXMLПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMImplementation::createDocumentdoctype теперь допускает значение null.
DOMImplementation::createDocumentПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMImplementation::createDocumentTypeПри статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.
DOMImplementation::hasFeatureТеперь статический вызов метода выбросит исключение Error. Раньше метод выдавал ошибку уровня E_DEPRECATED.
FFI::cdeflib теперь допускает значение null.
FFI::stringsize теперь допускает значение null; ранее значением по умолчанию был 0.
FilesystemIterator::__constructТеперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку; ранее выбрасывалось исключение RuntimeException.
absПараметр num больше не принимает внутренние объекты, поддерживающие числовое преобразование.
apache_notenote_value теперь допускает значение null.
array_chunkЕсли параметр length меньше 1, будет выброшено исключение ValueError; ранее, вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала null.
array_columnФункция больше не приводит к строке объекты в столбцах, которые обозначили аргументом index_key, а вместо этого выбрасывает ошибку TypeError.
array_combineФункция array_combine теперь выбрасывает ошибку ValueError, если количество элементов в массивах не совпадает; раньше функция возвращала значение false.
array_diffФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_diff_assocФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_diff_keyФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_fillФункция array_fill теперь выбрасывает ошибку ValueError, если значение параметра count выходит за пределы допустимого диапазона; раньше выдавалась ошибка уровня E_WARNING, а функция возвращала значение false.
array_filterПараметр callback теперь принимает значение null.
array_filterФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
array_intersectФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_intersect_assocФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_intersect_keyФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось не меньше двух аргументов.
array_key_existsПараметр key теперь принимает аргументы с типами bool, float, int, null, resource и string.
array_key_existsПередача значения с типом object в параметр array больше не поддерживается.
array_mapФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
array_randФункция array_rand теперь выбрасывает ошибку ValueError, если значение параметра num выходит за пределы диапазона; раньше функция выдавала ошибку уровня E_WARNING и возвращала значение null.
array_randФункция array_rand теперь выбрасывает ошибку ValueError, если в параметр array передали пустой массив; раньше функция выдавала ошибку уровня E_WARNING и возвращала значение null.
array_reduceФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
array_spliceПараметр length теперь принимает значение null.
array_walkТеперь функция выдаёт ошибку уровня E_WARNING, если параметр callback ожидает, что значение второго или третьего аргумента передадут по ссылке.
assertФункция assert больше не оценивает строковые аргументы, вместо этого строки рассматриваются как любой другой аргумент. Вместо assert('$a == $b') лучше вызывать assert($a == $b). Директиву assert.quiet_eval php.ini и константу ASSERT_QUIET_EVAL тоже удалили, поскольку они больше не дают никакого эффекта.
assertПри передаче в параметр description экземпляра класса Throwable исключение выбрасывается, если утверждение не прошло проверку, независимо от значения опции assert.exception.
assertПри передаче в параметр description экземпляра класса Throwable пользовательская callback-функция не вызывается, даже если её установили.
assertОбъявление пользовательской функции с названием assert() запретили, даже внутри пространства имён. Попытка объявить функцию выдаст ошибку уровня E_COMPILE_ERROR.
assert_optionsТеперь функция выбрасывает исключение ValueError, если в параметр option передали недопустимую опцию; раньше возвращалось значение false.
bcaddПараметр scale теперь принимает значение null.
bccompПараметр scale теперь принимает значение null.
bcdivПараметр scale теперь принимает значение null.
bcdivДеление на 0 теперь выбрасывает исключение DivisionByZeroError вместо возврата значения null.
bcmodПараметр scale теперь принимает значение null.
bcmodДеление на 0 теперь выбрасывает исключение DivisionByZeroError вместо возврата значения null.
bcmulПараметр scale теперь принимает значение null.
bcpowФункция теперь не усекает показатель степени, а выбрасывает исключение ValueError, когда показатель степени exponent содержит дробную часть.
bcpowmodПараметр scale теперь принимает значение null.
bcpowmodФункция теперь выбрасывает ошибку ValueError вместо возврата значения false, если показатель степени exponent оказался отрицательным значением.
bcpowmodДеление на 0 теперь выбрасывает ошибку DivisionByZeroError вместо возврата значения false.
bcscaleПараметр scale теперь принимает значение null.
bcsqrtФункция выбрасывается ошибку ValueError, если значение аргумента num оказалось строкой, которую сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath, или меньше 0; раньше вместо этого выдавалась ошибка уровня E_WARNING.
bcsqrtДопустимый диапазон значений параметра scale теперь лежит в пределах значений от 0 до 2147483647; раньше функция воспринимала отрицательные значения как 0.
bcsqrtПараметр scale теперь принимает значение null.
bcsubПараметр scale теперь принимает значение null.
bzdecompressТип use_less_memory изменён с int на bool. Ранее значением по умолчанию был 0.
bzwritelength теперь допускает значение null.
call_user_func_arrayКлючи параметра args теперь интерпретируются как имена параметров, а не игнорируются.
ceilПараметр num больше не принимает внутренние объекты, которые поддерживают числовое преобразование.
closedirПараметр dir_handle теперь допускает значение null.
com_event_sinksink_interface теперь допускает значение null.
com_get_active_objectcodepage теперь допускает значение null.
compactФункция теперь генерирует ошибку уровня E_WARNING, если строка ссылается на переменную, которую не установили.
constantТеперь функция constant выбрасывает исключение Error, если константу не определили; раньше выдавалась ошибка уровня E_WARNING и возвращалось значение null.
convert_cyr_stringФункцию удалили.
convert_uuencodeДо этой версии при попытке преобразовать пустую строку возвращалось false без особой причины.
countТеперь функция count выбрасывает исключение TypeError, если в параметр value передали недопустимый исчисляемый тип.
count_charsДо этой версии функция возвращала false, если возникала ошибка.
cryptПараметр salt больше необязателен.
curl_closeФункция теперь является NOP.
curl_closeПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_copy_handleПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_copy_handleФункция теперь возвращает экземпляр класса CurlHandle, если выполнилась успешно; раньше возвращался ресурс (resource).
curl_errnoПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_errorПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_escapeПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_execПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_getinfoПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_getinfoПараметр option теперь принимает значение null. раньше значением по умолчанию равнялось 0.
curl_initТеперь в случае успешного выполнения функция возвращает экземпляр класса CurlHandle; раньше возвращался ресурс (resource).
curl_initПараметр url теперь принимает значение null.
curl_multi_add_handleПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_add_handleПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_multi_closeПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_errnoФункция больше не возвращает false в случае возникновения ошибки.
curl_multi_errnoПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_execПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_getcontentПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_multi_info_readПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_initТеперь в случае успешного выполнения функция возвращает экземпляр класса CurlMultiHandle; раньше возвращался ресурс (resource).
curl_multi_remove_handleПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_remove_handleПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_multi_selectПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_multi_setoptПараметр multi_handle теперь принимает объект CurlMultiHandle; раньше принимался тип resource.
curl_pauseПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_resetПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_setoptПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_setopt_arrayПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_share_closeФункция стала NOP (англ. No Operation) и ни на что не влияет.
curl_share_closeПараметр share_handle теперь принимает объект CurlShareHandle; рарьше параметр ждал ресурс (resource).
curl_share_errnoФункция больше не возвращает false в случае возникновения ошибки.
curl_share_errnoПараметр share_handle теперь принимает объект CurlShareHandle; рарьше параметр ждал ресурс (resource).
curl_share_initФункция возвращает экземпляр класса CurlShareHandle; раньше возвращался ресурс (resource).
curl_share_setoptПараметр share_handle теперь принимает объект CurlShareHandle; рарьше параметр ждал ресурс (resource).
curl_unescapeПараметр handle теперь принимает объект CurlHandle; раньше, параметр ждал ресурс (resource).
curl_versionУдалили необязательный параметр age.
dateПараметр timestamp теперь принимает значение null.
date_sunriseПараметры latitude, longitude, zenith и utcOffset теперь принимают значение null.
date_sunsetПараметры latitude, longitude, zenith и utcOffset теперь принимают значение null.
defineПри передаче значения true в параметр case_insensitive теперь возникает ошибка уровня E_WARNING. Передача значения false по-прежнему возможна.
deflate_addcontext ожидает экземпляр DeflateContext; раньше, ожидался ресурс (resource).
deflate_initВ случае успешного выполнения функция возвращает экземпляр DeflateContext; раньше, возвращался ресурс (resource).
dircontext теперь допускает значение null.
dom_import_simplexmlФункция больше не возвращает null в случае возникновения ошибки.
easter_dateПараметр year теперь принимает значение null.
easter_dateФункция выбрасывает ошибку ValueError, если значение параметра year выходит за пределы допустимого диапазона. Раньше вызывалась ошибка уровня E_WARNING и функция возвращала false.
easter_daysyear теперь допускает значение null.
enchant_broker_describeПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_describeДо этой версии функция возвращала false в случае возникновения ошибки.
enchant_broker_dict_existsПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_freeФункция устарела в пользу удаления объекта.
enchant_broker_freeПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_free_dictФункция устарела в пользу удаления объекта.
enchant_broker_free_dictПараметр dictionary теперь ожидает экземпляр класса EnchantDictionary; раньше ожидался ресурс (resource).
enchant_broker_get_dict_pathФункция устарела.
enchant_broker_get_dict_pathПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_get_errorПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_initВ случае успешного выполнения функция возвращает экземпляр EnchantBroker; Ранее возвращался ресурс (resource).
enchant_broker_list_dictsПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_list_dictsДо этой версии функция возвращала false в случае возникновения ошибки.
enchant_broker_request_dictПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_request_dictПри успешном выполнении функция теперь возвращает экземпляр класса EnchantDictionary; раньше возвращался ресурс (resource).
enchant_broker_request_pwl_dictПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_request_pwl_dictВ случае успешного выполнения функция возвращает экземпляр EnchantDictionary; Ранее возвращался ресурс (resource).
enchant_broker_set_dict_pathФункция устарела.
enchant_broker_set_dict_pathПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_broker_set_orderingПараметр broker ожидает экземпляр класса EnchantBroker; Раньше параметр ждал ресурс (resource).
enchant_dict_addПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_add_to_sessionПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_checkПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_describeПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_describeДо этой версии функция возвращала false, если возникла ошибка.
enchant_dict_get_errorПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_is_addedПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_quick_checkПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_store_replacementПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
enchant_dict_suggestПараметр dictionary ожидает экземпляр класса EnchantDictionary; Раньше параметр ждал ресурс (resource).
error_logПараметры destination и additional_headers теперь принимают значение null.
error_reportingПараметр error_level теперь принимает значение null.
execТеперь функция exec выбрасывает исключение ValueError, если параметр command не указали или параметр содержит нулевые байты; раньше функция выдавала ошибку уровня E_WARNING и возвращала false.
exif_read_datarequired_sections теперь допускает значение null.
explodeТеперь функция explode выбрасывает исключение TypeError, если разделитель separator — пустая строка "". Раньше функция explode вместо исключения возвращала false.
ezmlm_hashФункцию удалили.
fgetcsvПараметр length теперь принимает значение null.
file_get_contentsПараметр length теперь принимает значение null.
finfo_buffercontext теперь допускает значение null.
finfo_filecontext теперь допускает значение null.
floatvalУровень ошибки при преобразовании из объекта изменился с E_NOTICE на E_WARNING.
floorПараметр num больше не принимает внутренние объекты, которые поддерживают числовое преобразование.
fprintfФункция больше не возвращает false, если возникла ошибка.
fprintfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
fprintfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
fprintfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
fprintfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
fsockopenПараметр timeout теперь принимает значение null.
fwriteПараметр length теперь принимает значение null.
get_called_classПри вызове функции извне класса теперь выбрасывается исключение Error. Раньше функция выдавала ошибку уровня E_WARNING и возвращала значение false.
get_classВызов функции вне класса без аргументов выбрасывает ошибку Error. Раньше функция выдавала ошибку уровня E_WARNING и возвращала значение false.
get_class_methodsТеперь параметр object_or_class принимает только объекты или корректные имена классов.
get_defined_functionsЗначение по умолчанию для параметра exclude_disabled изменили с false на true, но это не повлияет на результат, поскольку отключенные функции удаляются из таблицы функций при компиляции.
get_headersТип параметра associative был изменён с целого числа (int) на логическое значение (bool).
get_magic_quotes_gpcФункцию удалили.
get_magic_quotes_runtimeФункцию удалили.
get_parent_classПараметр object_or_class теперь принимает только объекты или корректные имена классов.
get_resourcestype теперь допускает значение null.
getdateПараметр timestamp теперь принимает значение null.
getenvПараметр name теперь принимает значение null.
getimagesizeФункция теперь выбрасывает ошибку ValueError, если в параметр filename передали пустую строку; раньше выдавалась ошибка уровня E_WARNING, и функция возвращала значение false.
gmdateПараметр timestamp теперь принимает значение null.
gmmktimeПараметр hour стал обязательным. Метку времени Unix без передачи аргументов возвращает функция time.
gmmktimeПараметры minute, second, month, day и year теперь принимают значение null.
gmp_binomialФункция больше не возвращает false в случае возникновения ошибки.
gmp_exportФункция больше не возвращает false в случае возникновения ошибки.
gmp_importФункция больше не возвращает false в случае возникновения ошибки.
gmp_random_seedЕсли параметр seed указан некорректно, функция gmp_random_seed теперь выбрасывает ValueError; ранее выдавалась ошибка уровня E_WARNING и возвращалось значение false.
gmstrftimeПараметр timestamp теперь принимает значение null.
grapheme_substrФункция теперь автоматически уменьшает или увеличивает значение смещения, которое выходит за пределы строки; раньше при выходе смещения за границы строки вместо пустой строки возвращалось значение false.
gzgetslength теперь допускает значение null; ранее значение по умолчанию было 1024.
gzwritelength теперь допускает значение null; раньше значением по умолчанию был 0.
hashФункция теперь выбрасывает исключение ValueError, если алгоритм algo неизвестен; раньше вместо этого возвращалось значение false и выдавалось сообщение об ошибке уровня E_WARNING.
hash_hkdfФункция при ошибке теперь выбрасывает ошибку ValueError; раньше выдавалась ошибка уровня E_WARNING и возвращалось значение false.
hash_hmacФункция теперь выбрасывает ошибку ValueError, если в параметр algo передали название неизвестной или некриптографической хеш-функции; раньше вместо этого возвращалось значение false и выдавалось сообщение об ошибке уровня E_WARNING.
hash_hmac_fileФункция теперь выбрасывает исключение ValueError, если алгоритм algo неизвестен или не криптографическая хеш-функция; раньше вместо этого возвращалось значение false и выдавалось сообщение об ошибке уровня E_WARNING.
hash_initТеперь функция выбрасывает исключение ValueError, если параметр algo неизвестен или не криптографическая хеш-функция, или если параметр key пуст; раньше возвращалось значение false и выдавалась ошибка уровня E_WARNING. emitted.
hash_pbkdf2Теперь выбрасывается исключение ValueError, если возникла ошибка; раньше функция возвращала false и выдавала ошибку уровня E_WARNING.
hash_update_fileПараметр stream_context теперь принимает значение null.
header_removename теперь допускает значение null.
hebrevcФункцию удалили.
html_entity_decodeПараметр encoding теперь принимает значение null.
htmlentitiesПараметр encoding теперь принимает значение null.
http_build_queryПараметр arg_separator теперь допускает значение null.
iconv_mime_decodeencoding теперь допускает значение null.
iconv_mime_decode_headersencoding теперь допускает значение null.
iconv_strlenПараметр encoding теперь принимает значение null.
iconv_strposencoding теперь допускает значение null.
iconv_strrposencoding теперь допускает значение null.
iconv_substrlength и encoding теперь допускают значение null.
idateПараметр timestamp теперь принимает значение null.
ignore_user_abortПараметр enable теперь принимает значение null.
imageaffineclip теперь допускает значение null.
imageaffineВ случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
imagealphablendingПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageantialiasПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagearcПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagebmpПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagebmpПараметр compressed теперь принадлежит логическому значению bool; раньше параметр был целым числом (int).
imagecharПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecharupПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorallocateПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorallocatealphaПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecoloratПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorclosestПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorclosesthwbПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolordeallocateПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorexactПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorexactalphaПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolormatchПараметры image1 и image2 теперь ожидают экземпляр класса GdImage; раньше ожидался тип resource.
imagecolorresolveПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorresolvealphaПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorsetПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorsforindexПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolorsforindexФункция imagecolorsforindex теперь выбрасывает исключение ValueError, если параметр color вне допустимого диапазона; ранее вместо этого возвращалось значение false.
imagecolorstotalПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolortransparentПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecolortransparentПараметр color теперь принимает значение null.
imageconvolutionПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecopyПараметр dst_image и src_image теперь ожидают объект GdImage; раньше параметры ожидали тип resource.
imagecopymergeПараметры dst_image и src_image теперь ожидают объект GdImage; раньше параметры ожидали тип resource.
imagecopymergegrayПараметры dst_image и src_image теперь ожидают объект GdImage; раньше параметры ожидали тип resource.
imagecopyresampledПараметры dst_image и src_image теперь принимают объект GdImage; раньше принимался тип resource.
imagecopyresizedПараметры dst_image и src_image теперь принимают объект GdImage; раньше принимался тип resource.
imagecreateВ случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
imagecreatefrombmpФункция теперь возвращает экземпляр GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromgdФункция теперь возвращает экземпляр GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromgd2Функция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromgd2partФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromgifФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromjpegФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefrompngФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromstringФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше функция возвращала ресурс (resource).
imagecreatefromtgaВ случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
imagecreatefromwbmpФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromwebpФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromxbmФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatefromxpmФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecreatetruecolorФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше функция возвращала ресурс (resource).
imagecropПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecropФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagecropautoПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagecropautoФункция теперь возвращает объект класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagedashedlineПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagedestroyФункция стала NOP (англ. No Operation) и ни на что не влияет.
imagedestroyПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageellipseПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefillПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilledarcПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilledellipseПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilledpolygonПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilledrectangleПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilltoborderПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefilterПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageflipПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagefttextПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegammacorrectПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegdПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegd2Параметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegetclipПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegetinterpolationПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegifПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagegrabscreenФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagegrabwindowФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagegrabwindowПараметр client_area теперь ожидает логическое значение bool; раньше ожидалось значение с типом int.
imageinterlaceПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageinterlaceПараметр enable теперь ожидает значение с типом bool; раньше ожидалось значение с типом int.
imageistruecolorПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagejpegПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagelayereffectПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagelineПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageopenpolygonПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagepalettecopyПараметры dst и src теперь ожидают экземпляр класса GdImage; раньше ожидался ресурс (resource).
imagepalettetotruecolorПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagepngПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagepolygonПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagerectangleПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imageresolutionПараметры resolution_x и resolution_y теперь принимают значение null.
imagerotateФункция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
imagerotateПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagerotateНенужный параметр v теперь ожидает значение с типом bool; раньше ожидалось значение с типом int.
imagesavealphaПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagescaleВ случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
imagescaleПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesetbrushПараметры image и brush теперь принимают объект GdImage; раньше принимался тип resource.
imagesetclipПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesetinterpolationПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesetpixelПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesetthicknessПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesettileПараметры image и tile теперь принимают объект GdImage; раньше принимался тип resource.
imagestringПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagestringupПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesxПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagesyПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagetruecolortopaletteПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagettfbboxДобавили параметр options.
imagettftextДобавили параметр options.
imagewbmpПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagewbmpПараметр foreground_color теперь принимает значение null.
imagewebpПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagexbmПараметр image теперь принимает объект GdImage; раньше параметр принимал корректный gd-ресурс (resource).
imagexbmПараметр foreground_color теперь принимает значение null.
imagexbmУдалили четвёртый параметр, который функция не учитывала.
implodeФункция больше не поддерживает передачу разделителя separator после массива array.
inflate_addcontext ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).
inflate_get_read_lencontext ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).
inflate_get_statuscontext ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).
inflate_initВ случае успешного выполнения функция возвращает экземпляр InflateContext; раньше возвращался ресурс (resource).
intvalУровень ошибки при преобразовании из объекта изменился с E_NOTICE на E_WARNING.
is_numericЧисловые строки, которые заканчиваются пробелом ("42 "), теперь вернут true. Раньше вместо этого возвращалось false.
jdtounixФункция больше не возвращает false в случае возникновения ошибки, вместо этого выбрасывает ValueError.
ldap_addПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_add_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_bind_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_compareПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_control_paged_resultФункция была удалена.
ldap_control_paged_result_responseФункция была удалена.
ldap_deleteПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_delete_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_exop_passwdПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_first_attributeНеиспользуемый третий параметр ber_identifier больше не принимается.
ldap_listПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_addПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_delПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_replaceПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_modify_batchПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_add_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_del_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_mod_replace_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_next_attributeНеиспользуемый третий параметр ber_identifier больше не принимается.
ldap_readПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_renameПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_rename_extПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_sasl_bindПараметры dn, password, mech, realm, authc_id, authz_id и props теперь принимают значение null.
ldap_searchПараметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
ldap_set_rebind_proccallback теперь допускает значение null.
ldap_sortФункция была удалена.
levenshteinДо этой версии levenshtein нужно было вызывать с двумя или пятью аргументами.
levenshteinДо этой версии, levenshtein возвращала значение -1, если одна из строк аргумента более 255 символов.
libxml_disable_entity_loaderФункция устарела.
libxml_use_internal_errorsuse_errors теперь допускает значение null. Ранее значением по умолчанию было false.
localtimeПараметр timestamp теперь принимает значение null.
maxФункция max теперь выбрасывает исключение ValueError, если возникла ошибка; раньше возвращалось значение false и выдавалась ошибка уровня E_WARNING.
maxПоскольку сравнения строк с числами изменились, функция max больше не возвращает другое значение в зависимости от порядка аргументов для таких случаев.
mb_check_encodingПараметры value и encoding могут принимать значение null.
mb_chrПараметр encoding теперь принимает значение null.
mb_convert_encodingФункция mb_convert_encoding теперь выбрасывает ошибку ValueError при передаче в параметр to_encoding недопустимой кодировки.
mb_convert_encodingФункция mb_convert_encoding теперь выбрасывает ошибку ValueError при передаче в параметр from_encoding недопустимой кодировки.
mb_convert_encodingПараметр from_encoding теперь принимает значение null.
mb_convert_kanaПараметр encoding теперь принимает значение null.
mb_decode_numericentityПараметр encoding теперь принимает значение null.
mb_detect_orderПараметр encoding теперь принимает значение null.
mb_encode_mimeheaderПараметры charset и transfer_encoding теперь принимают значение null.
mb_encode_numericentityПараметр encoding теперь принимает значение null.
mb_encoding_aliasesЕсли параметр encoding неизвестен, теперь выбрасывается исключение ValueError; раньше функция выдавала ошибку уровня E_WARNING и возвращала false.
mb_eregТеперь в случае успешного завершения эта функция возвращает true. Раньше она возвращала байтовую длину найденного вхождения, если в строке string было найдено совпадение шаблону pattern и был установлен параметр matches. Если необязательный параметр matches не был задан или длина проверяемой строки равнялась 0, функция возвращала 1.
mb_ereg_matchПараметр options теперь принимает значение null.
mb_ereg_replaceПараметр options теперь может принимать значение null.
mb_ereg_replace_callbackПараметр options теперь может принимать значение null.
mb_ereg_searchПараметры pattern и options теперь могут принимать значение null.
mb_ereg_search_initПараметры pattern и options теперь могут принимать значение null.
mb_ereg_search_posПараметры pattern и options теперь могут принимать значение null.
mb_ereg_search_regsПараметры pattern и options теперь могут принимать значение null.
mb_eregiТеперь эта функция возвращает true в случае успешного выполнения. Раньше, если был задан параметр matches и в строке string было найдено вхождение шаблона pattern, возвращалась длинна найденной подстроки в байтах. Если параметр matches не задавался или длина найденной подстроки равнялась 0, функция возвращала 1.
mb_eregi_replaceПараметр options теперь может принимать значение null.
mb_get_infoПараметр type больше не поддерживает значения "func_overload" и "func_overload_list".
mb_http_inputФункция mb_http_input теперь выбрасывает ошибку ValueError, если значение параметра type некорректно. Параметр type теперь принимает null.
mb_http_outputПараметр encoding теперь принимает значение null.
mb_internal_encodingПараметр encoding теперь принимает значение null.
mb_internal_encodingТеперь функция выбрасывает исключение ValueError, если в параметр encoding передали недопустимое значение кодировки. Раньше вместо этого функция выдавала ошибку уровня E_WARNING.
mb_languageТеперь параметр language может принимать значение null.
mb_ordПараметр encoding теперь принимает значение null.
mb_parse_strВторой параметр стал обязательным.
mb_regex_encodingПараметр encoding теперь принимает значение null.
mb_regex_set_optionsЕсли параметр options задан и не равен null, возвращаются предыдущие параметры. Ранее возвращались текущие параметры.
mb_regex_set_optionsПараметр options теперь может принимать значение null.
mb_regex_set_optionsОпция «e» теперь выбрасывает исключение ValueError.
mb_scrubПараметр encoding теперь принимает значение null.
mb_send_mailТеперь параметр additional_params может принимать значение null.
mb_str_splitПараметр encoding теперь принимает значение null.
mb_str_splitФункция больше не возвращает false, если возникла ошибка.
mb_strcutПараметр encoding теперь принимает значение null.
mb_strimwidthПараметр encoding теперь принимает значение null.
mb_striposneedle теперь принимает пустую строку.
mb_striposПараметр encoding теперь принимает значение null.
mb_stristrneedle теперь принимает пустую строку.
mb_stristrПараметр encoding теперь принимает значение null.
mb_strlenПараметр encoding теперь принимает значение null.
mb_strposneedle теперь принимает пустую строку.
mb_strposПараметр encoding теперь принимает значение null.
mb_strrchrneedle теперь принимает пустую строку.
mb_strrchrПараметр encoding теперь принимает значение null.
mb_strrichrneedle теперь принимает пустую строку.
mb_strrichrПараметр encoding теперь принимает значение null.
mb_strriposneedle теперь принимает пустую строку.
mb_strriposПараметр encoding теперь принимает значение null.
mb_strrposneedle теперь принимает пустую строку.
mb_strrposЗапретили передачу названия кодировки для параметра encoding в третьем аргументе вместо параметра offset.
mb_strrposПараметр encoding теперь принимает значение null.
mb_strstrneedle теперь принимает пустую строку.
mb_strstrПараметр encoding теперь принимает значение null.
mb_strwidthПараметр encoding теперь принимает значение null.
mb_substitute_characterПередача пустой строки в параметр substitute_character больше не поддерживается; вместо этого передают значение "none".
mb_substitute_characterПараметр encoding теперь принимает значение null.
mb_substrПараметр encoding теперь принимает значение null.
mb_substr_countПараметр encoding теперь принимает значение null.
metaphoneФункция возвращала false в случае возникновения ошибки.
mhashПараметр key теперь принимает значение null.
minФункция min теперь выбрасывает ошибку ValueError, если возникла ошибка; раньше возвращалось значение false и выдавалась ошибка уровня E_WARNING.
minПри сравнении разнотипных значений функция min теперь возвращает наименьшее значение по правилам сравнения, а не на основании порядка аргументов, поскольку правила сравнения строк с числами изменили.
mktimeПараметр hour стал обязательным. Функция time возвращает метку времени Unix без аргументов.
mktimeПараметры minute, second, month, day и year теперь принимают значение null.
money_formatФункцию удалили.
msg_get_queueВ случае успешного выполнения функция теперь возвращает экземпляр класса SysvMessageQueue; раньше возвращался ресурс (resource).
msg_receiveПараметр queue теперь ожидает экземпляр класса SysvMessageQueue; раньше ожидался ресурс (resource).
msg_remove_queueПараметр queue теперь ожидает экземпляр класса SysvMessageQueue; раньше ожидался ресурс (resource).
msg_sendПараметр queue теперь ожидает экземпляр класса SysvMessageQueue; раньше ожидался ресурс (resource).
msg_set_queueПараметр queue теперь ожидает экземпляр класса SysvMessageQueue; раньше ожидался ресурс (resource).
msg_stat_queueПараметр queue теперь ожидает экземпляр класса SysvMessageQueue; раньше ожидался ресурс (resource).
mt_randФункция выбросит ошибку ValueError, если значение параметра max окажется меньше значения параметра min; раньше функция выдавала ошибку уровня E_WARNING и возвращала значение false.
number_formatДо этой версии функция number_format принимала один, два или четыре параметр, но не три.
ob_implicit_flushПараметр enable теперь принимает значение с типом bool; раньше принималось значение с типом int.
odbc_columnsПараметры schema, table и column теперь принимают значение null.
odbc_errorПараметр odbc теперь принимает значение null.
odbc_errormsgПараметр odbc теперь принимает значение null.
odbc_execПараметр flags удалили.
odbc_executeПараметр flags удалили.
odbc_fetch_rowПараметр row теперь принимает значение null.
odbc_procedurecolumnsДо этой версии функцию разрешалось вызывать только с одним или пятью аргументами.
odbc_proceduresДо этой версии функцию разрешалось вызывать только с одним или четырьмя аргументами.
odbc_tablesПараметры schema, table и types теперь принимают значение null.
opendirПараметр context теперь допускает значение null.
openssl_csr_exportcsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_export_to_filecsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_get_public_keyВ случае успешного выполнения возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
openssl_csr_get_public_keycsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_get_subjectcsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_newcsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_newprivate_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.
openssl_csr_signOn success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
openssl_csr_signcsr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_signca_certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_csr_signprivate_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_dh_compute_keyПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey; раньше принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_free_keyФункция устарела, поскольку больше не имеет смысла.
openssl_free_keyПараметр key теперь принимает экземпляр класса OpenSSLAsymmetricKey; раньше параметр принимал ресурс (resource) с типом OpenSSL key.
openssl_openПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL key или OpenSSL X.509 CSR.
openssl_openПараметр cipher_algo теперь обязателен.
openssl_pkcs7_decryptПараметр private_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежал типу OpenSSL key или OpenSSL X.509 CSR.
openssl_pkcs7_encryptПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежал типу OpenSSL X.509 CSR.
openssl_pkcs7_signПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежит типу OpenSSL X.509 CSR.
openssl_pkcs7_signПараметр private_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежит типу OpenSSL key или OpenSSL X.509 CSR.
openssl_pkcs7_verifyПараметры signers_certificates_filename, untrusted_certificates_filename, content и output_filename теперь принимают значение null.
openssl_pkcs12_exportПараметр certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_pkcs12_exportПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkcs12_export_to_fileПараметр certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
openssl_pkcs12_export_to_fileПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkey_exportПараметр key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkey_export_to_fileПараметр key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkey_freeФункция устарела, поскольку больше ни на что не влияет.
openssl_pkey_freeПараметр key теперь принимает экземпляр класса OpenSSLAsymmetricKey; раньше принимался ресурс (resource), который принадлежит типу OpenSSL key.
openssl_pkey_get_detailskey теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.
openssl_pkey_get_privateВ случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; раньше возвращался ресурс (resource) типа OpenSSL key.
openssl_pkey_get_privateПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkey_get_privateПараметр passphrase теперь принимает значение null.
openssl_pkey_get_publicВ случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
openssl_pkey_get_publicpublic_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_pkey_newВ случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; раньше возвращался ресурс (resource) типа OpenSSL key.
openssl_private_decryptПараметрprivate_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_private_encryptПараметр private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_public_decryptПараметрpublic_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_public_encryptПараметр public_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_random_pseudo_bytesstrong_result теперь допускает значение null.
openssl_sealПараметр public_key теперь принимает массив (array) экземпляров класса OpenSSLAsymmetricKey; раньше принимался массив (array) ресурсов (resource) с типом OpenSSL key.
openssl_sealПараметр cipher_algo теперь обязательный параметр.
openssl_sealПараметр iv теперь принимает значение null.
openssl_signПараметр private_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
openssl_spki_newПараметр private_key теперь принимает экземпляр класса OpenSSLAsymmetricKey; раньше принимался ресурс (resource) с типом OpenSSL key.
openssl_verifyПараметр public_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL key или OpenSSL X.509.
openssl_x509_check_private_keyПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL X.509.
openssl_x509_check_private_keyПараметрprivate_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL key или OpenSSL X.509.
openssl_x509_checkpurposecertificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
openssl_x509_checkpurposeuntrusted_certificates_file теперь допускает значение null.
openssl_x509_exportcertificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
openssl_x509_export_to_filecertificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
openssl_x509_fingerprintcertificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
openssl_x509_freeФункция устарела, поскольку больше ни на что не влияет.
openssl_x509_freeПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежит типу OpenSSL X.509.
openssl_x509_parseПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL X.509.
openssl_x509_readВ случае успешного выполнения функция возвращает экземпляр класса OpenSSLCertificate; раньше возвращался ресурс (resource) с типом OpenSSL X.509.
openssl_x509_readПараметр certificate теперь принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL X.509.
openssl_x509_verifyТеперь параметр certificate принимает экземпляр класса OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL X.509.
openssl_x509_verifyТеперь параметр public_key принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) с типом OpenSSL key или OpenSSL X.509.
packФункция больше не возвращает false, если возникла ошибка.
parse_strПараметр result стал обязательным.
parse_urlФункция parse_url теперь различит запросы и фрагменты, которые не содержатся в адресе или пусты.
passthruЕсли параметр command не указали или содержит нулевые байты, функция passthru теперь выбрасывает исключение ValueError; раньше функция выдавала ошибку уровня E_WARNING и возвращала false.
password_hashФункция password_hash больше не возвращает значение false, если возникла ошибка. Вместо этого функция выбросит ошибку ValueError, если алгоритм хеширования пароля недействителен, или ошибку Error, если не получилось захешировать пароль из-за неизвестной ошибки.
password_hashПараметр algo теперь принимает значение null.
pcntl_async_signalsenable теперь допускает значение null.
pcntl_getpriorityprocess_id теперь допускает значение null.
pcntl_setpriorityprocess_id теперь допускает значение null.
pfsockopenПараметр timeout теперь принимает значение null.
pg_client_encodingconnection теперь допускает значение null.
pg_closeconnection теперь допускает значение null.
pg_dbnameconnection теперь допускает значение null.
pg_end_copyconnection теперь допускает значение null.
pg_fetch_allФункция pg_fetch_all теперь возвращает пустой массив (array) вместо значения false для наборов результатов без строк.
pg_hostconnection теперь допускает значение null.
pg_last_errorconnection теперь допускает значение null.
pg_lo_writelength теперь допускает значение null.
pg_optionsconnection теперь допускает значение null.
pg_pingconnection теперь допускает значение null.
pg_portconnection теперь допускает значение null.
pg_traceconnection теперь допускает значение null.
pg_ttyconnection теперь допускает значение null.
pg_untraceconnection теперь допускает значение null.
pg_versionconnection теперь допускает значение null.
phpversionПараметр extension теперь принимает значение null.
printfФункция больше не возвращает false, если возникла ошибка.
printfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
printfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
printfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
printfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
readdirdir_handle теперь допускает значение null.
readline_infoПараметры var_name и value теперь принимают значение null.
readline_read_historyПараметр filename теперь принимает значение null.
readline_write_historyПараметр filename теперь принимает значение null.
restore_include_pathФункцию удалили.
rewinddirdir_handle теперь допускает значение null.
roundПараметр num больше не принимает внутренние объекты, которые поддерживают числовое преобразование.
sapi_windows_vt100_supportenable теперь допускает значение null.
scandircontext теперь допускает значение null.
sem_acquireПараметр semaphore теперь ожидает экземпляр класса SysvSemaphore; раньше ожидался ресурс (resource).
sem_getВ случае успешного выполнения функция возвращает экземпляр класса SysvSemaphore; раньше возвращался ресурс (resource).
sem_getТип auto_release изменили с целого числа (int) на логическое значение (bool).
sem_releaseПараметр semaphore теперь ожидает экземпляр класса SysvSemaphore; раньше ожидался ресурс (resource).
sem_removeПараметр semaphore теперь ожидает экземпляр класса SysvSemaphore; раньше ожидался ресурс (resource).
session_cache_expireПараметр value теперь принимает значение null.
session_cache_limiterПараметр value теперь принимает значение null.
session_idПараметр id теперь принимает значение null.
session_module_nameПараметр module теперь принимает значение null.
session_nameПараметр name теперь принимает значение null.
session_save_pathПараметр path теперь принимает значение null.
session_set_cookie_paramsПараметры path, domain, secure и httponly теперь принимают значение null.
set_error_handlerПараметр errcontext удалили. Контекст ошибки больше не передаётся в пользовательскую callback-функцию.
setcookieПри передаче в массиве опций ключей, которые параметр не поддерживает, теперь выбрасывается ошибка ValueError; раньше функция выдавала ошибку уровня E_WARNING.
settypeТеперь выбрасывает исключение ValueError, когда в параметр type передан недопустимый тип. Раньше выдавалась ошибка уровня E_WARNING и функция возвращала false.
shm_attachВ случае успешного выполнения функция возвращает экземпляр SysvSharedMemory; ранее возвращался ресурс (resource).
shm_attachsize теперь допускает значение null.
shm_detachshm ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shm_get_varshm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shm_has_varshm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shm_put_varshm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shm_removeshm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shm_remove_varshm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).
shmop_closeФункция устарела, поскольку больше ни на что не влияет.
shmop_closeПараметр shmop ожидает экземпляр класса Shmop; раньше ожидался ресурс (resource).
shmop_deleteПараметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).
shmop_openВ случае успешного выполнения возвращается экземпляр Shmop; ранее возвращался ресурс (resource).
shmop_openЕсли параметр mode указан некорректно или параметр size меньше или равен нулю, выдаётся ошибка ValueError. previously E_WARNING was emitted instead, ранее вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала false.
shmop_readПараметр shmop теперь ожидает экземпляр класса Shmop; раньше ожидался ресурс (resource).
shmop_readФункция выбрасывает ошибку ValueError, если в аргументе offset или size передали значение вне допустимого диапазона; раньше выдавалась ошибка уровня E_WARNING и функция возвращала значение false.
shmop_sizeПараметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).
shmop_writeДо PHP 8.0.0 в случае возникновения ошибки возвращалось false.
shmop_writeПараметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).
sleepФункция выбрасывает исключение ValueError, если в параметре seconds указали отрицательное число; раньше вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала значение false.
socket_acceptВ случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).
socket_addrinfo_bindВ случае успешного выполнения функция возвращает экземпляр класса Socket; раньше возвращался ресурс (resource).
socket_addrinfo_bindПараметр address теперь принимает объект AddressInfo; раньше принимался тип resource.
socket_addrinfo_connectВ случае успешного выполнения функция возвращает экземпляр класса Socket; раньше возвращался ресурс (resource).
socket_addrinfo_connectПараметр address теперь принимает объект AddressInfo; раньше принимался тип resource.
socket_addrinfo_explainПараметр address теперь принимает объект AddressInfo; раньше принимался тип resource.
socket_addrinfo_lookupВ случае успешного выполнения функция возвращает массив экземпляров AddressInfo; раньше возвращался ресурс (resource).
socket_addrinfo_lookupПараметр service теперь принимает значение null.
socket_bindПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_clear_errorПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_clear_errorsocket теперь допускает значение null.
socket_closeПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_connectПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_connectport теперь допускает значение null.
socket_createВ случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).
socket_create_listenВ случае успешного выполнения функция возвращает экземпляр класса Socket; раньше возвращался ресурс (resource).
socket_create_pairpair является ссылкой на массив экземпляров Socket; ранее являлся ссылкой на массив ресурсов (resource).
socket_export_streamПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_get_optionПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_getpeernameПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_getsocknameПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_import_streamТеперь в случае успешного выполнения функция возвращает экземпляр класса Socket; раньше возвращался ресурс (resource).
socket_last_errorПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_last_errorПараметр socket теперь принимает значение null.
socket_listenПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_readПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_recvПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_recvfromПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_recvmsgПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_sendПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_sendmsgПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_sendtoПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_sendtoПараметр port теперь принимает значение null.
socket_set_blockПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_set_nonblockПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_set_optionПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_shutdownПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_writeПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_writeПараметр length теперь принимает значение null.
socket_wsaprotocol_info_exportПараметр socket теперь принимает объект Socket; раньше принимался тип resource.
socket_wsaprotocol_info_importВ случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).
soundexДо этой версии при вызове функции с пустой строкой возвращалось значение false без особой причины.
spl_autoloadПараметр file_extensions теперь принимает значение null.
spl_autoload_extensionsПараметр file_extensions теперь принимает значение null.
spl_autoload_functionsЗначение, которое возвращает функция, обновили, чтобы функция возвращала только массив (array); раньше функция возвращала false, если библиотека SPL ещё не активировала очередь автозагрузки.
spl_autoload_registerТеперь параметр callback принимает значение null.
sprintfФункция больше не возвращает false, если возникла ошибка.
sprintfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
sprintfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
sprintfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
sprintfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
str_splitФункция теперь выбросит ошибку ValueError, если значение аргумента length окажется меньше 1; раньше вместо этого функция вызывала ошибку уровня E_WARNING и возвращала false.
str_word_countПараметр characters теперь принимает значение null.
strcspnПараметр length теперь принимает значение null.
stream_context_createПараметры options и params теперь принимают значение null.
stream_context_get_defaultПараметр options теперь принимает значение null.
stream_copy_to_streamПараметр length теперь допускает значение null.
stream_get_contentslength теперь допускает значение null.
stream_set_chunk_sizeТеперь выбрасывается исключение ValueError, если значение параметра size меньше 1 или больше значения константы PHP_INT_MAX. Ранее вызывалась ошибка уровня E_WARNING и возвращалось логическое значение false.
stream_socket_acceptПараметр timeout теперь принимает значение null.
stream_socket_clientПараметры timeout и context теперь принимают значение null.
stream_socket_enable_cryptosession_stream теперь допускает значение null.
stream_socket_serverПараметр context теперь принимает значение null.
strftimeПараметр timestamp теперь принимает значение null.
strip_tagsПараметр allowed_tags теперь принимает значение null.
striposПараметр needle теперь разрешает пустую строку.
striposФункция перестала поддерживать передачу целого числа (int) в параметр needle.
stristrПараметр needle теперь разрешает пустую строку.
stristrПередача целого числа (int) в параметр needle больше не поддерживается.
strposПараметр needle теперь разрешает пустую строку.
strposФункция больше не поддерживает передачу целого числа (int) в параметр needle.
strrchrПараметр needle теперь разрешает пустую строку.
strrchrПередача целого числа (int) в needle больше не поддерживается.
strriposПараметр needle теперь разрешает пустую строку.
strriposФункция перестала поддерживать передачу целого числа (int) в параметр needle.
strrposПараметр needle теперь разрешает пустую строку.
strrposПередача целого числа (int) в параметр needle больше не поддерживается.
strspnПараметр length теперь принимает значение null.
strstrПараметр needle теперь разрешает пустую строку.
strstrФункция больше не поддерживает передачу целого числа (int) в параметр needle.
strtotimeПараметр baseTimestamp теперь принимает значение null.
substrПараметр length теперь принимает значение null. При явной установке для параметра length значения null функция возвращает подстроку, которая заканчивается в конце строки; раньше возвращалась пустая строка.
substrФункция возвращает пустую строку там, где раньше возвращала false.
substr_compareПараметр length теперь принимает значение null.
substr_countПараметр length теперь принимает значение null.
substr_replacelength теперь допускает значение null.
touchПараметр mtime и atime теперь допускают значение null.
trigger_errorФункция выбрасывает ошибку ValueError, если в аргументе error_level передали недопустимое значение. Раньше функция возвращала значение false.
uasortФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
uksortФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
umaskПараметр mask теперь может принимать значение null.
unixtojdtimestamp теперь допускает значение null.
usortФункция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке.
vfprintfФункция больше не возвращает false, если возникла ошибка.
vfprintfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
vfprintfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vfprintfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vfprintfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
vprintfФункция больше не возвращает false, если возникла ошибка.
vprintfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
vprintfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vprintfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vprintfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
vsprintfФункция больше не возвращает false, если возникла ошибка.
vsprintfВыбрасывает исключение ValueError, если количество аргументов равно нулю; раньше функция выдавала ошибку уровня E_WARNING.
vsprintfВыбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vsprintfВыбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; раньше функция выдавала ошибку уровня E_WARNING.
vsprintfВыбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; раньше функция выдавала ошибку уровня E_WARNING.
wordwrapФункция выбросит исключение ValueError, если параметр break окажется пустой строкой; раньше выдавалась ошибка уровня E_WARNING и возвращалось значение false.
xml_get_current_byte_indexПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_get_current_column_numberПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_get_current_line_numberПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_get_error_codeПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parseПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parse_into_structПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parser_createТеперь функция возвращает экземпляр класса XMLParser; раньше функция возвращала ресурс (resource) или false, если возникла ошибка.
xml_parser_createПараметр encoding теперь принимает значение null.
xml_parser_create_nsФункция теперь возвращает экземпляр XMLParser; ранее возвращался ресурс (resource) или false, если возникла ошибка.
xml_parser_create_nsencoding теперь допускает значение null.
xml_parser_freeПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parser_get_optionПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parser_get_optionЕсли значение параметра option недопустимо, теперь выбрасывается исключение ValueError.
xml_parser_set_optionПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_parser_set_optionТеперь выбрасывается исключение ValueError, если значение параметра option недопустимо.
xml_set_character_data_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_default_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_element_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_end_namespace_decl_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_external_entity_ref_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_notation_decl_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_objectПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_processing_instruction_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_start_namespace_decl_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
xml_set_unparsed_entity_decl_handlerПараметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
zip_closeФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::close.
zip_entry_closeФункция устарела в пользу объектно-ориентированного API.
zip_entry_compressedsizeФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::statIndex.
zip_entry_compressionmethodФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::statIndex.
zip_entry_filesizeФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::statIndex.
zip_entry_nameФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::statIndex.
zip_entry_openФункция устарела в пользу объектно-ориентированного API.
zip_entry_readФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::getFromIndex.
zip_openФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::open.
zip_readФункция устарела в пользу объектно-ориентированного API, смотрите описание метода ZipArchive::statIndex.
GlobIterator::__constructТеперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку. Ранее выбрасывалось исключение RuntimeException.
IntlCalendar::setMinimalDaysInFirstWeekВ случае некорректного ввода данных теперь выдаётся ошибка ValueError; ранее возвращалось значение false.
IntlTimeZone::getIDForWindowsIDПараметр region теперь допускает значение null.
LimitIterator::__constructТеперь выбрасывает исключение ValueError, если смещение offset окажется меньше 0; ранее выбрасывалось исключение RuntimeException.
LimitIterator::__constructТеперь выбрасывает исключение ValueError, если смещение limit окажется меньше -1; ранее выбрасывалось исключение RuntimeException.
Locale::getDisplayLanguagedisplayLocale теперь допускает значение null.
Locale::getDisplayNamedisplayLocale теперь допускает значение null.
Locale::getDisplayRegiondisplayLocale теперь допускает значение null.
Locale::getDisplayScriptdisplayLocale теперь допускает значение null.
Locale::getDisplayVariantdisplayLocale теперь допускает значение null.
mysqli_result::fetch_objectПараметр constructor_args теперь принимает пустой массив [] для конструкторов без параметров; раньше функция выбрасывала исключение.
mysqli_result::field_seekТеперь функция каждый раз возвращает значение true. Раньше функция возвращала значение false, если возникала ошибка.
mysqli_stmt::closeФункция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки.
mysqli_stmt::__constructquery теперь допускает значение null.
mysqli::begin_transactionname теперь допускает значение null.
mysqli::closeФункция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки.
mysqli::commitname теперь допускает значение null.
mysqli::debugФункция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки.
mysqli::rollbackname теперь допускает значение null.
NumberFormatter::createpattern теперь допускает значение null.
PDOStatement::fetchAllТеперь метод каждый раз возвращает массив (array), раньше иногда возвращалось false, если возникала ошибка.
Phar::addFilelocalName теперь допускает значение null.
Phar::buildFromIteratorbaseDirectory теперь допускает значение null.
Phar::compressextension теперь допускает значение null.
Phar::convertToDataformat, compression и extension теперь допускают значение null.
Phar::convertToExecutableformat, compression и extension теперь допускают значение null.
Phar::createDefaultStubindex и webIndex теперь допускают значение null.
Phar::decompressextension теперь допускает значение null.
Phar::getMetadataДобавлен параметр unserializeOptions.
Phar::setDefaultStubwebIndex теперь допускает значение null.
Phar::setSignatureAlgorithmprivateKey теперь допускает значение null.
Phar::webPharПараметр fileNotFoundScript и rewrite теперь допускают значение null.
PharData::addFilelocalName теперь допускает значение null.
PharData::buildFromIteratorbaseDirectory теперь допускает значение null.
PharData::compressextension теперь допускает значение null.
PharData::convertToDataformat, compression и extension теперь допускают значение null.
PharData::convertToExecutableformat, compression и localName теперь допускают значение null.
PharData::decompressextension теперь допускает значение null.
PharData::setDefaultStubwebIndex теперь допускает значение null.
PharData::setSignatureAlgorithmprivateKey теперь допускает значение null.
PharFileInfo::getMetadataДобавлен параметр unserializeOptions.
PharFileInfo::isCompressedcompression теперь допускает значение null.
RecursiveDirectoryIterator::__constructТеперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку. ранее выбрасывалось исключение RuntimeException.
RecursiveIteratorIterator::getSubIteratorПараметр level теперь принимает значение null.
ReflectionClass::getConstantsДобавлен параметр filter.
ReflectionClass::getReflectionConstantsДобавили параметр filter.
ReflectionClass::setStaticPropertyValueМетод ReflectionClass::setStaticPropertyValue теперь поддерживает установку закрытых и защищённых статических свойств; раньше выбрасывалось исключение ReflectionException.
ReflectionFunction::invokeArgsКлючи args теперь интерпретируются как имена параметров, а не игнорируются.
ReflectionFunction::isDisabledФункция устарела, поскольку экземпляр класса ReflectionFunction больше нельзя создавать для отключённых функций.
ReflectionMethod::exportФункцию удалили.
ReflectionMethod::getClosureobject теперь допускает значение null.
ReflectionMethod::invokeArgsКлючи args теперь интерпретируются как имена параметров, а не игнорируются.
ReflectionParameter::getClassМетод устарел в пользу метода ReflectionParameter::getType.
ReflectionParameter::getDefaultValueМетод теперь позволяет получить значение по умолчанию для параметров встроенных функций и встроенных методов класса. Ранее выбрасывалось ReflectionException.
ReflectionParameter::getDefaultValueConstantNameМетод теперь разрешает получать названия констант значений по умолчанию для встроенных функций и встроенных методов класса. Раньше выбрасывалось исключение ReflectionException.
ReflectionParameter::isArrayМетод устарел в пользу метода ReflectionParameter::getType.
ReflectionParameter::isCallableМетод устарел в пользу метода ReflectionParameter::getType.
ReflectionProperty::getValueobject теперь допускает значение null.
ReflectionProperty::isInitializedПараметр object теперь принимает значение null.
ReflectionType::__toStringС метода ReflectionType::__toString сняли признак устаревшего.
Reflector::exportФункцию удалили.
SimpleXMLElement::asXMLfilename теперь допускает значение null.
SoapClient::__doRequestТип параметра oneWay изменился с int на bool.
SoapClient::__setCookievalue теперь допускает значение null.
SoapServer::handlerequest теперь допускает значение null.
SplFileInfo::getFileInfoclass теперь допускает значение null.
SplFileInfo::getPathInfoclass теперь допускает значение null.
SplFileInfo::openFilecontext теперь допускает значение null.
SplFixedArray::__constructТеперь выбрасывает исключение ValueError, если параметр size отрицателен; ранее выбрасывалось исключение InvalidArgumentException.
tidy::__constructfilename, config, encoding и useIncludePath теперь допускают значение null.
tidy::parseFileПараметры config и encoding теперь принимают значение null.
tidy::parseStringconfig и encoding теперь допускают значение null.
tidy::repairFiletidy::repairFile теперь статичный метод.
tidy::repairFileconfig и encoding теперь допускают значение null.
tidy::repairStringtidy::repairString теперь статичный метод.
tidy::repairStringconfig и encoding теперь допускают значение null.
tidy::repairStringФункция больше не принимает параметр useIncludePath.
XMLReader::getAttributeМетод больше не может возвращать false.
XMLReader::getAttributeNsМетод больше не возвращает false.
XMLReader::lookupNamespaceМетод больше не возвращает false.
XMLReader::nextПараметр name теперь принимает значение null.
XMLReader::openМетод XMLReader::open объявили статическим, но его по-прежнему разрешается вызывать на экземпляре класса XMLReader.
XMLReader::XMLМетод XMLReader::XML объявили статическим, но его по-прежнему разрешается вызывать на экземпляре класса XMLReader.
XMLWriter::endAttributeВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endCdataВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endCommentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endDocumentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endDtdВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endDtdAttlistВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endDtdElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endDtdEntityВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::endPiВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::flushВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::flushФункция больше не может возвращать false.
XMLWriter::fullEndElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::openMemoryФункция теперь возвращает экземпляр XMLWriter, если выполнилась успешно. Раньше в этом случае возвращался ресурс (resource).
XMLWriter::openUriФункция теперь возвращает экземпляр класса XMLWriter, если выполнилась успешно. Раньше в этом случае возвращался ресурс (resource).
XMLWriter::outputMemoryВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::setIndentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::setIndentStringВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startAttributeВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startAttributeNsВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startAttributeNsprefix теперь допускает значение null.
XMLWriter::startCdataВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startCommentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startDocumentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startDtdВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startDtdAttlistВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startDtdElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startDtdEntityВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startElementNsВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::startPiВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::textВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeAttributeВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeAttributeNsВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeCdataВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeCommentВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeDtdВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeDtdAttlistВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeDtdElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeDtdEntityВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeDtdEntitypublicId, systemId и notationData теперь допускают значение null.
XMLWriter::writeElementВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeElementNsВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writePiВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
XMLWriter::writeRawВ параметре writer теперь ожидается экземпляр класса XMLWriter; раньше параметр ждал ресурс (resource).
ZipArchive::addEmptyDirДобавили параметр flags.
ZipArchive::addFileДобавили параметр flags.
ZipArchive::addFromStringДобавили параметр flags.
ZipArchive::addGlobДобавили опцию "flags" в параметр options.
ZipArchive::addGlobДобавили опции "comp_method", "comp_flags", "enc_method" и "enc_password" в параметр options.
ZipArchive::getStatusStringРазрешили вызвать метод на закрытом архиве.
ZipArchive::getStatusStringМетод больше не возвращает false, если возникла ошибка.
ZipArchive::setEncryptionIndexПараметр password теперь принимает значение null.
ZipArchive::setEncryptionNameПараметр password теперь принимает значение null.
7.4.12jdtounixУвеличен верхний предел julian_day. Раньше он был 2465342 независимо от архитектуры.
tidyNode::isHtmlИсправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML.
7.4.9ReflectionClass::setStaticPropertyValueМетод ReflectionClass::setStaticPropertyValue теперь поддерживает установку закрытых и защищённых статических свойств; раньше выбрасывалось исключение ReflectionException.
7.4.4proc_openДобавлена опция create_new_console в параметр options.
7.4.3curl_setoptДобавили опцию CURLOPT_HTTP09_ALLOWED.
7.4.2dba_openДрайвер lmdb теперь поддерживает дополнительный параметр map_size.
dba_popenДрайвер lmdb теперь поддерживает дополнительный параметр map_size.
7.4.0DatePeriod::__constructПараметр recurrences теперь принимает только значения больше 0.
array_key_existsПередача значения с типом object в параметр array устарела. Для проверки свойства вместо этой функции вызывают функцию property_exists.
array_mergeФункция теперь поддерживает вызов без аргументов; раньше требовался хотя бы один аргумент.
array_merge_recursiveТеперь функция умеет работать без аргументов. Раньше требовался хотя бы один аргумент.
base_convertПередача недопустимых символов будет генерировать уведомление об устаревании. Результат будет вычислен так, как если бы недопустимые символы не существовали.
bindecПередача недопустимых символов теперь выдаёт уведомление об устаревании. Результат по-прежнему будет вычислен, как если бы недопустимые символы не передавались.
chrФункция теперь выдаёт предупреждение, когда приводит к 0 значение параметра codepoint, которое невозможно интерпретировать как кодовую точку.
convert_cyr_stringФункция устарела.
curl_versionНеобязательный параметр age устарел; при передаче аргумента функция игнорирует значение.
currentЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
endЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
fgetcsvПараметр escape теперь также принимает пустую строку для отключения встроенного механизма экранирования.
fputcsvТеперь параметр escape принимает пустую строку для отключения внутреннего механизма экранирования.
get_declared_classesРаньше функция get_declared_classes возвращала родительские классы перед дочерними классами. Это поведение изменилось. Функция get_declared_classes не гарантирует порядок имён классов в массиве с результатами.
get_magic_quotes_gpcФункция устарела.
get_magic_quotes_runtimeФункция устарела.
gzreadВ случае возникновения ошибки возвращается false; раньше, возвращался 0.
gzwriteВ случае возникновения ошибки функция возвращает false. раньше возвращался 0.
hash_algosДобавили поддержку алгоритма crc32c.
hebrevcФункция устарела.
hexdecПередача недопустимых символов теперь выдаёт уведомление об устаревании. Результат по-прежнему вычисляется так, как если бы недопустимые символы не передавались.
idn_to_asciiЗначением по умолчанию для параметра variant стала константа INTL_IDNA_VARIANT_UTS46 вместо устаревшего варианта INTL_IDNA_VARIANT_2003.
idn_to_utf8Теперь значение по умолчанию variant изменено на INTL_IDNA_VARIANT_UTS46 вместо устаревшей константы INTL_IDNA_VARIANT_2003.
imagecropautoПоведение функции imagecropauto() во встроенной библиотеке libgd синхронизировали с поведением системной библиотеки libgd: режим IMG_CROP_DEFAULT больше не откатывается к режиму IMG_CROP_SIDES, а пороговая обрезка теперь работает по тому же алгоритму, что и системная библиотека libgd.
imagecropautoЗначение режима mode по умолчанию изменили на IMG_CROP_AUTO. Раньше значением по умолчанию было -1, что соответствует режиму IMG_CROP_DEFAULT, но передача значения -1 теперь устарела.
imagefilterДобавили поддержку рассеивания — IMG_FILTER_SCATTER.
implodeПередача разделителя separator после массива array, т. е. сигнатура, которая досталась в наследство, устарела.
keyЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
ldap_control_paged_resultФункция объявлена устаревшей.
ldap_control_paged_result_responseФункция объявлена устаревшей.
method_existsПри проверке доступности закрытого родительского метода в дочернем классе функция теперь возвращает значение false, если в первом аргументе передали строку.
money_formatФункция устарела. Вместо неё пользуются методом NumberFormatter::formatCurrency.
nextЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
octdecПередача недопустимых символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы недопустимые символы не были переданы.
password_hashПараметр algo теперь ожидает строку (string), но всё ещё принимает целое число (int) для обратной совместимости.
password_hashМодуль sodium обеспечивает альтернативную реализацию паролей Argon2.
password_needs_rehashПараметр algo теперь ожидает строку (string), но всё ещё принимает число (int) для обратной совместимости.
preg_replace_callbackДобавили параметр flags.
preg_replace_callback_arrayДобавлен параметр flags.
prevЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
proc_openproc_open теперь также принимает массив (array) в command.
proc_openДобавлена опция create_process_group в параметр options.
resetЭкземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств.
restore_include_pathФункция устарела.
statВ Windows номер устройства теперь является серийным номером тома, содержащего файл и номер inode - это идентификатор, связанный с файлом.
statСтатистика символьных ссылок size, atime, mtime и ctime всегда соответствует статистике целевого объекта. Это было ранее не характерно для NTS-сборки на Windows.
str_getcsvФункция теперь интерпретирует пустой параметр escape как требование отключить внутренний механизм экранирования. Раньше пустую строку функция рассматривала как значение по умолчанию для параметра.
strip_tagsПараметр allowed_tags теперь как альтернативу принимает массив (array).
unserializeВ параметр options добавили элемент max_depth, который устанавливает максимальную глубину десериализации структур.
Locale::lookupdefaultLocale теперь допускает значение null.
mysqli::__constructВсе параметры теперь принимают значение null
mysqli::real_connectВсе параметры теперь принимают значение null
ReflectionMethod::exportФункция устарела.
Reflector::exportФункция устарела.
SplFileObject::fgetcsvТеперь параметр escape принимает пустую строку для отключения внутреннего механизма экранирования.
SplFileObject::fputcsvПараметр escape теперь принимает пустую строку для отключения механизма экранирования.
SplFileObject::fwriteМетод теперь возвращает false вместо нуля, если возникла ошибка.
SplFileObject::getCsvControlПустую строку теперь разрешается использовать как символ экранирования.
SplFileObject::setCsvControlПараметр escape теперь принимает пустую строку для отключения внутреннего механизма экранирования.
SQLite3Stmt::bindParamПараметр param теперь поддерживает нотацию @param.
SQLite3Stmt::bindValueПараметр param теперь поддерживает нотацию @param.
7.3.24jdtounixУвеличен верхний предел julian_day. Раньше он был 2465342 независимо от архитектуры.
tidyNode::isHtmlИсправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML.
7.3.15curl_setoptДобавили опцию CURLOPT_HTTP09_ALLOWED.
7.3.14dba_openДрайвер lmdb теперь поддерживает дополнительный параметр map_size.
dba_popenДрайвер lmdb теперь поддерживает дополнительный параметр map_size.
7.3.6DatePeriod::__constructПараметр recurrences теперь принимает только значения больше 0.
SplFileObject::__toStringИзменён псевдоним с SplFileObject::current на SplFileObject::fgets.
7.3.5substr_compareПараметр offset теперь может равняться параметру haystack.
7.3.0DateTimeImmutable::createFromFormatДобавили спецификатор v для параметра format.
apache_request_headersФункция стала доступна через SAPI-интерфейс FPM.
array_pushТеперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.
array_unshiftФункция теперь поддерживает вызов только с одним аргументом. Раньше требовалось как минимум два аргумента.
assertОбъявление пользовательской функции с названием assert() устарело, даже внутри пространства имён. Объявление функции теперь выдаёт ошибку уровня E_DEPRECATED.
bcmulТеперь функция bcmul возвращает числа с заданной точностью. Раньше нули в конце дробной части числа отбрасывались.
bcpowФункция bcpow теперь возвращает числа с заданной точностью. Раньше нули в конце дробной части числа отбрасывались.
bcscaleФункция bcscale теперь возвращает текущую разрядность дробной части числа; при вызове с аргументом для установки нового значения количества знаков после десятичной точки по умолчанию функция теперь возвращает старое значение разрядности дробной части. Раньше параметр scale был обязательным, а функция bcscale возвращала только значение true.
compactФункция compact теперь выдаёт ошибку уровня E_NOTICE, если строка ссылается на переменную, которую не установили. Раньше такие строки функция без предупреждения пропускала.
curl_getinfoДобавили параметры CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
curl_setoptДобавили опции CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE и CURLOPT_TLS13_CIPHERS.
defineПараметр case_insensitive устарел, а в версии 8.0.0 параметр удалят.
ftp_fgetТеперь параметр mode опционален. Раньше он был обязательным.
ftp_fputТеперь параметр mode опционален. Раньше он был обязательным.
ftp_getТеперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_fgetПараметр mode сделали необязательным, раньше параметр был обязательным.
ftp_nb_fputТеперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_getТеперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_putТеперь параметр mode опционален. Раньше он был обязательным.
ftp_putТеперь параметр mode опционален. Раньше он был обязательным.
getallheadersФункция стала доступна через SAPI-интерфейс FPM.
imagecreatefromstringДобавили поддержку формата WEBP, если модуль libgd поддерживает такой формат.
is_countableДобавили функцию is_countable.
json_decodeДобавлена константа JSON_THROW_ON_ERROR для параметра flags.
json_encodeДобавлена константа JSON_THROW_ON_ERROR для параметра flags.
ldap_addДобавлена поддержка параметра controls
ldap_compareДобавлена поддержка параметра controls.
ldap_deleteДобавлена поддержка параметра controls.
ldap_exopДобавлена поддержка параметра controls.
ldap_exop_passwdДобавили поддержку параметра controls
ldap_listДобавлена поддержка параметра controls
ldap_mod_addДобавлена поддержка параметра controls
ldap_mod_delДобавлена поддержка параметра controls.
ldap_mod_replaceДобавлена поддержка параметра controls.
ldap_modify_batchДобавлена поддержка параметра controls.
ldap_mod_add_extДобавлена поддержка параметра controls
ldap_mod_del_extДобавлена поддержка параметра controls
ldap_mod_replace_extДобавлена поддержка параметра controls
ldap_parse_resultДобавлена поддержка параметра controls
ldap_readДобавлена поддержка параметра controls
ldap_renameДобавлена поддержка параметра controls
ldap_rename_extДобавлена поддержка параметра controls
ldap_searchДобавлена поддержка параметра controls.
listДобавили поддержку присваивания по ссылкам при деструктуризации массива.
mb_convert_caseДобавили поддержку режимов для параметра mode: MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE и MB_CASE_FOLD_SIMPLE.
password_hashВвели константу PASSWORD_ARGON2ID, которая добавила поддержку алгоритма хеширования паролей алгоритмом Argon2id.
preg_quoteСимвол # теперь экранируется
session_get_cookie_paramsДобавлен элемент "samesite" в возвращаемый массив.
session_set_cookie_paramsДобавили альтернативную сигнатуру, которая поддерживает массив опций lifetime_or_options. Эта сигнатура поддерживает также установку cookie-атрибута SameSite.
setcookieДобавили альтернативную сигнатуру, которая поддерживает массив опций options. Эта сигнатура поддерживает также установку cookie-атрибута SameSite.
setrawcookieДобавили альтернативную подпись, которая поддерживает массив опций options. Эта подпись также поддерживает настройку атрибута SameSite блока данных cookie.
striposПередача целого числа (int) в параметр needle устарела.
stristrПередача целого числа (int) в параметр needle устарела.
strposПередача целого числа (int) в параметр needle устарела.
strrchrПередача целого числа (int) в needle объявлена устаревшей.
strriposПередача целого числа (int) в needle устарела.
strrposПередача целого числа (int) в параметр needle устарела.
strstrПередача целого числа (int) в параметр needle устарела.
unlinkВ ОС Windows теперь можно удалить файлы функцией unlink через дескрипторы, хотя раньше это не удавалось. Тем не менее, всё ещё невозможно повторно создать удалённый файл, пока все дескрипторы к нему не будут закрыты.
var_exportФункция теперь вместо вызова несуществующего метода stdClass::__setState экспортирует объекты класса stdClass как массив, который приводится к объекту: (object) array( ... ). Практический эффект заключается в том, что теперь объекты класса stdClass доступны для экспорта, а полученный код сработает даже в более ранних версиях PHP.
xml_parser_get_optionТеперь параметр options поддерживает значения XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE.
xml_set_external_entity_ref_handlerФункция больше не игнорирует значение, которое возвращает обработчик handler, если модуль собрали с библиотекой libxml. Раньше функция игнорировала значение возврата, а разбор не останавливался.
7.2.19DatePeriod::__constructПараметр recurrences теперь принимает только значения больше 0.
SplFileObject::__toStringИзменён псевдоним с SplFileObject::current на SplFileObject::fgets.
7.2.18litespeed_finish_requestФункция стала частью SAPI-модуля LiteSpeed.
substr_compareПараметр offset теперь может равняться параметру haystack.
7.2.12DateInterval::formatФормат F и f теперь всегда будет положительным.
xml_parser_get_optionТеперь параметр options поддерживает значения XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE.
7.2.0array_uniqueРаньше со значением SORT_STRING для параметра flags функция копировала массив array, удаляла из копии неуникальные элементы и после этого внутренне не упаковывала массив. Теперь функция создаёт новый массив и добавляет в него уникальные элементы. Это иногда приводит к разным числовым индексам.
assertПередача в параметр assertion утверждений в значении с типом string устарела. Функция теперь выдаст ошибку уровня E_DEPRECATED, когда и для опции assert.active, и для опции zend.assertions установили значение 1.
bcmodЧисла num1 и num2 больше не усекаются до целого, поэтому поведение функции bcmod теперь соответствует функции fmod, а не оператору %.
bcmodДобавили параметр scale.
countТеперь функция count будет выдавать предупреждение о недопустимых исчисляемых типах, которые передали в параметр value.
date_parseЭлемент zone в массиве результатов теперь содержит секунды вместо минут, а знак инвертируется, например: значение -120 теперь выводится как 7200.
date_parse_from_formatЭлемент zone в массиве результатов теперь содержит секунды вместо минут, а знак инвертируется, например: значение -120 теперь выводится как 7200.
date_sun_infoФункция теперь берёт за точку отсчёта местную полночь, а не местный полдень, что исправляет расчёты значений и повышает точность результатов.
exif_read_dataПараметр file переименовали в stream и принимает как локальный путь к файлу, так и потоковый ресурс.
exif_read_dataДобавили поддержку следующих форматов EXIF: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
exif_thumbnailПараметр file переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.
ezmlm_hashФункция устарела.
get_classДо этой версии значение по умолчанию для параметра object равнялось null, с которым функция работала аналогично вызову без аргументов. Параметр object стал обязательным и больше не принимает значение null.
gettypeДля закрытых ресурсов теперь возвращается 'resource (closed)'. Ранее для закрытых ресурсов возвращалось 'unknown type'.
hash_copyПринимает и возвращает HashContext, а не ресурс.
hash_finalПринимает HashContext, а не ресурс.
hash_hmacГенерацию хеш-строки через некриптографические хеш-функции наподобие adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat запретили.
hash_hmac_fileЗапретили некриптографические хеш-функции (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).
hash_initЗапретили некриптографические хеш-функции (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) с константой HASH_HMAC.
hash_initФункция возвращает объект класса HashContext, а не ресурс.
hash_pbkdf2Запретили некриптографические хеш-функции (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).
hash_updateПринимает HashContext, а не ресурс.
hash_update_fileФункция принимает объект класса HashContext, а не ресурс.
hash_update_streamФункция вместо ресурса теперь принимает объект класса HashContext.
idn_to_asciiКонстанта INTL_IDNA_VARIANT_2003 устарела в пользу варианта INTL_IDNA_VARIANT_UTS46.
idn_to_utf8INTL_IDNA_VARIANT_2003 объявлена устаревшей, вместо неё используйте INTL_IDNA_VARIANT_UTS46.
imageantialiasФункция imageantialias теперь доступна и при сборке PHP с системной библиотекой GD; раньше требовалось компилировать PHP только с библиотекой, которая входит в комплект исходных файлов интерпретатора.
imagegdФункция imagegd теперь разрешает выводить полноцветные truecolor-изображения. Раньше функция неявно преобразовывала такие изображения к палитре.
imagelayereffectДобавили эффект IMG_EFFECT_MULTIPLY; для работы эффекта требуется системная библиотека libgd >= 2.1.1 или библиотека libgd, которая входит в комплект исходных файлов интерпретатора.
imagetypesДобавлена константа IMG_BMP.
is_objectТеперь функция is_object возвращает true для десериализованных объектов без определения класса (класс __PHP_Incomplete_Class). Раньше возвращалось false.
json_decodeassociative теперь nullable.
json_decodeДобавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags.
json_encodeДобавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags.
mailПараметр additional_headers теперь принимает массив.
mb_check_encodingФункция теперь также принимает массив (array) в value. Ранее поддерживались только строки (string).
mb_convert_encodingФункция теперь также принимает массив (array) как значение параметра string. Раньше поддерживались только значения string.
mb_parse_strВызов функции mb_parse_str без второго параметра объявлен устаревшим.
mb_send_mailТеперь в параметр additional_headers можно передавать массив.
mt_randВ функции mt_rand исправили ошибку смещения по модулю, поэтому последовательности, которые сгенерировали с конкретным начальным значением, не совпадают со значениями, которые сгенерировали в PHP 7.1 на 64-битных машинах.
number_formatФункцию number_format изменили, чтобы не возвращать значение -0. Раньше функция иногда возвращала значение -0, если параметр num равнялся -0.01.
openssl_pkcs7_verifyДобавили параметр output_filename.
packТипы float и double поддерживают как прямой, так и обратный порядок байтов.
parse_strВызов функции parse_str без второго аргумента теперь выдаёт ошибку уровня E_DEPRECATED.
password_hashВвели константу PASSWORD_ARGON2I, которая добавила поддержку хеширования паролей алгоритмом Argon2i.
preg_matchТеперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.
preg_match_allТеперь параметр $flags поддерживает константу PREG_UNMATCHED_AS_NULL.
preg_quotedelimiter теперь допускает значение null.
proc_niceЭта функция стала доступна в Windows.
randВ функции rand исправили ошибку смещения по модулю, поэтому последовательности, которые сгенерировали с конкретным начальным значением, не совпадают со значениями, которые сгенерировали в PHP 7.1 на 64-битных машинах.
read_exif_dataЭтот псевдоним был объявлен устаревшим.
session_abortТеперь возвращаемый тип этой функции bool. Раньше был тип void.
session_module_nameЯвную установку названия "user" для модуля-обработчика сессии теперь запретили. Раньше установка такого значения без предупреждения игнорировалась.
session_nameФункция session_name проверяет статус сессии, раньше функция проверяла только статус cookie. Поэтому старую версию функции session_name разрешалось вызывать после вызова функции session_start, что иногда приводило к сбою PHP и неправильному поведению.
session_resetТеперь возвращаемый тип этой функции bool. Раньше был тип void.
session_set_cookie_paramsФункция возвращает true, если выполнилась успешно, или false, если возникла ошибка. Раньше функция возвращала тип void.
session_unsetТеперь функция возвращает тип bool. Раньше функция возвращала тип void.
session_write_closeТеперь возвращаемый тип этой функции bool. Раньше был тип void.
set_error_handlerПараметр errcontext устарел. При определении параметра в пользовательском обработчике функция выдаст ошибку уровня E_DEPRECATED.
unpackТипы float и double поддерживают как прямой, так и обратный порядок байтов.
utf8_decodeФункцию перенесли из модуля XML в ядро PHP. В предыдущих версиях функция была доступна только при установленном модуле XML.
utf8_encodeФункцию перенесли из модуля XML в ядро PHP. В предыдущих версиях функция была доступна только при установленном модуле XML.
PDOStatement::debugDumpParamsPDOStatement::debugDumpParams теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая заменённые параметры с их связанными значениями). Обратите внимание, что это будет работать только при включённой эмуляции подготавливаемых запросов.
ReflectionClass::getMethodsfilter теперь допускает значение null.
ReflectionClass::getPropertiesfilter теперь допускает значение null.
SQLite3::openBlobДобавлен параметр flags, позволяющий записать BLOB; ранее поддерживалось только чтение.
7.1.24xml_parser_get_optionТеперь параметр options поддерживает значения XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE.
7.1.5IntlDateFormatter::formatТеперь параметр datetime поддерживает общие объекты DateTimeInterface. Раньше поддерживались только объекты DateTime.
7.1.4PDO::sqliteCreateFunctionДобавлен параметр flags.
SQLite3::createFunctionДобавлен параметр flags.
7.1.2dns_get_recordДобавили поддержку записей типа CAA.
fopenДобавили флаг 'e'.
7.1.1get_defined_functionsДобавили параметр exclude_disabled.
packДобавили коды e, E, g и G для поддержки порядка байтов для типов float и double.
7.1.0DateInterval::formatДобавлены форматирующие символы F и f.
DateTime::setTimeДобавлен параметр microsecond.
DateTimeImmutable::__constructМикросекунды теперь заполняются фактическим значением, а не значением '00000'.
DateTimeImmutable::setTimeДобавили параметр microsecond.
DateTimeZone::listIdentifiersПараметр countryCode теперь принимает значение null.
array_randВнутренний алгоритм выбора случайных элементов изменился с функции rand библиотеки libc на генератор случайных чисел на базе Вихря Мерсе́нна.
curl_multi_setoptДобавили константу CURLMOPT_PUSHFUNCTION.
exif_imagetypeДобавлена поддержка WebP.
file_get_contentsДобавили поддержку отрицательных значений для смещения offset.
get_headersДобавлен параметр context.
getenvТеперь, чтобы получить ассоциативный массив (array) всех переменных окружения, параметр name можно не указывать.
getimagesizeДобавили поддержку формата WebP.
getoptДобавлен параметр rest_index.
grapheme_extractДобавлена поддержка отрицательных значений offset.
grapheme_striposПараметр offset теперь поддерживает отрицательные значения.
grapheme_strposПараметр offset теперь поддерживает отрицательные значения.
hash_algosДобавили поддержку алгоритмов sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 и sha3-512.
iconv_strposПоддержка отрицательных значений offset.
json_decodeПустой ключ JSON ("") будет преобразован в пустое свойство объекта, а не в свойство со значением _empty_.
json_encodeДобавлена константа JSON_UNESCAPED_LINE_TERMINATORS для параметра flags.
json_encodeПри кодировании чисел с плавающей точкой (float) вместо значения директивы precision функция учитывает значение директивы serialize_precision.
listКонструкция list теперь поддерживает ключи. Это помогает разыменовывать ассоциативные массивы и массивы с индексами не по порядку.
long2ipТип параметра ip изменился со string на int.
mb_eregТеперь функция mb_ereg устанавливает параметр matches равным пустому массиву (array), если ничего не найдено. Ранее параметр matches не изменялся.
mb_ereg_replaceФункция проверяет, допустима ли строка string для текущей кодировки.
mb_ereg_replaceМодификатор e объявлен устаревшим.
mb_ereg_replace_callbackФункция проверяет, допустима ли строка string для текущей кодировки.
mb_ereg_search_setposДобавлена поддержка параметром offset отрицательных значений.
mb_eregiФункция mb_eregi устанавливает значение параметра matches равным пустому массиву, если ничего не найдено. Ранее при отсутствии совпадений параметр matches не изменялся.
mb_eregi_replaceФункция проверяет, является ли строка string допустимой для текущей кодировки.
mb_eregi_replaceМодификатор e объявлен устаревшим.
mb_regex_set_optionsОпция «e» теперь выдаёт ошибку уровня ValueError.
mb_strimwidthДобавлена поддержка отрицательных значений для параметров start и width.
mb_striposДобавили поддержку отрицательных значений параметром offset.
mb_strposДобавили поддержку отрицательных значений параметром offset.
mt_randФункция rand стала псевдонимом функции mt_rand.
mt_randФункцию mt_rand обновили и теперь функция генерирует значения через корректную версию генератора случайных чисел на основе Вихря Мерсенна. Старое поведение получают через функцию mt_srand с аргументом MT_RAND_PHP для второго параметра.
mt_srandФункция srand стала псевдоним функции mt_srand.
mt_srandАлгоритм функции mt_rand исправили и теперь функция работает с корректной версией Вихря Мерсе́нна. Для возврата к старому поведению во второй параметр функции mt_srand передают константу MT_RAND_PHP.
openssl_csr_newПараметр options теперь поддерживает curve_name.
openssl_decryptДобавили параметры tag и aad.
openssl_encryptДобавили параметры tag, aad и tag_length.
openssl_pkey_newДля параметра options добавили ключ curve_name, чтобы создавать EC-ключи на основе алгоритмов эллиптических кривых.
output_add_rewrite_varНачиная с PHP 7.1.0 функция работает с выделенным буфером вывода, директива url_rewriter.tags учитывается только при работе с функциями вывода, а директива url_rewriter.hosts доступна. До PHP 7.1.0 переменные перезаписи, которые установили функцией output_add_rewrite_var, работали с общим буфером вывода с поддержкой прозрачного идентификатора сессии. Смотрите описание директивы session.trans_sid_tags.
output_reset_rewrite_varsДо PHP 7.1.0, переменные перезаписи установленные функцией output_add_rewrite_var используют тот же буфер модуля сессии "trans sid". С PHP 7.1.0, используется отдельный буфер и output_reset_rewrite_vars только удаляет переменные перезаписи определённые output_add_rewrite_var.
pcntl_signalНачиная с PHP 7.1.0 callback-функции обработчика передаётся второй аргумент, который содержит структуру siginfo с со специфичной информацией о сигнале. Эти данные передаются, только если операционная система поддерживает структуры siginfo_t, а если в ОС не реализовали поддержку структур siginfo_t, передаётся значение NULL.
pcntl_signal_get_handlerБыла добавлена функция pcntl_signal_get_handler.
pg_fetch_allДобавлен параметр mode.
pg_last_noticeДобавлен параметр mode.
pg_selectДобавили параметр mode.
randФункция rand стала синонимом функции mt_rand.
session_startФункция session_start теперь возвращает значение false и больше не инициализирует суперглобальный массив $_SESSION, если не получилось запустить сессию.
shuffleВнутренний алгоритм генерации случайных чисел изменился с функции rand библиотеки libc на генератор на базе Вихря Мерсе́на.
srandФункция srand стала синонимом функции mt_srand.
str_shuffleВнутренний алгоритм генерации случайных чисел изменился с функции rand библиотеки libc на генератор на базе Вихря Мерсе́на.
striposДобавили поддержку отрицательных значений параметром offset.
strposДобавили поддержку отрицательных значений параметром offset.
substr_countДобавили поддержку отрицательных значений параметрами offset и length. Параметр length теперь допускает значение 0.
tempnamtempnam теперь выдаёт уведомление при возврате во временный каталог системы.
unpackДобавили необязательный параметр offset.
unserializeДля элемента allowed_classes в параметре options определили строгий тип, поэтому функция unserialize вернёт значение false и вызовет ошибку уровня E_WARNING, если в элементе передали значение не с типом array или bool.
ReflectionType::__toStringМетод ReflectionType::__toString объявлен устаревшим.
SessionHandler::gcДо этой версии, в случае успешного выполнения эта функция возвращала true.
SessionHandlerInterface::gcДо этой версии, функция возвращала true в случае успешного выполнения.
7.0.16dns_get_recordДобавили поддержку записей типа CAA.
fopenДобавили флаг 'e'.
7.0.15get_defined_functionsДобавили параметр exclude_disabled.
packДобавили коды e, E, g и G для поддержки порядка байтов для типов float и double.
7.0.11iconv_substrЕсли string имеет длину равную offset, будет возвращена пустая строка. Ранее в подобных случаях возвращалось false.
7.0.10imagetypesДобавлена константа IMG_WEBP.
SplFileObject::getCsvControlВ массив с результатами добавили символ экранирования.
SQLite3::__constructПараметр filename разрешается задавать пустой строкой, чтобы создать на диске приватную временную базу данных.
7.0.9getenvДобавлен параметр local_only.
7.0.7curl_multi_setoptДобавили константы CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH и CURLMOPT_MAX_TOTAL_CONNECTIONS.
curl_setoptДобавили параметры CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT и CURLSSLOPT_NO_REVOKE.
Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

Changelog

The following changes have been made to functions of bundled extensions.

VersionFunctionDescription
8.6.0ini_get_allThe builtin_default_value element was added to the details array returned for each directive.
snmp3_getThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
snmp3_getnextThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
snmp3_real_walkThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
snmp3_setThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
snmp3_walkThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
SNMP::setSecurityThe privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library.
8.5.0ArrayIterator::__constructPassing an enum as array now throws an InvalidArgumentException.
ArrayIterator::__constructPassing an object as array is deprecated.
ArrayObject::__constructPassing an enum as array now throws an InvalidArgumentException.
ArrayObject::__constructPassing an object as array is deprecated.
array_key_existsUsing null in the key parameter is deprecated, use an empty string instead.
array_multisortThe return type is true now; previously, it was bool.
bzcompressA ValueError is now thrown if block_size is not between 1 and 9, or if work_factor is not between 0 and 250.
chrPassing integers outside the interval [0, 255] is now deprecated.
cli_set_process_titlecli_set_process_title will now emit an E_WARNING when setting a process title that is too long; previously the title would be truncated.
closedirUsing null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided.
curl_closeThis function has been deprecated.
curl_multi_get_handlesThe function was added.
curl_share_closeThis function has been deprecated.
error_get_lastThe returned array now includes a "trace" key when a fatal error backtrace is available.
exif_imagetypeAdded HEIF support.
finfo_bufferThe context parameter has been deprecated as it is ignored.
finfo_closeThis function has been deprecated.
finfo_closeThe return type is true now; previously, it was bool.
finfo_fileA ValueError is now thrown instead of a TypeError when filename contains null bytes.
fprintfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
ftp_set_optionThe return type is true now; previously, it was bool.
gc_collect_cyclesThe return value no longer includes strings and resources that were indirectly collected through cycles.
get_defined_functionsThe exclude_disabled parameter has been deprecated, as it no longer has any effect.
grapheme_levenshteinThis function has been added.
grapheme_striposThe optional parameter locale has been added.
grapheme_stristrThe optional parameter locale has been added.
grapheme_strposThe optional parameter locale has been added.
grapheme_strriposThe optional parameter locale has been added.
grapheme_strrposThe optional parameter locale has been added.
grapheme_strstrThe optional parameter locale has been added.
grapheme_substrThe optional parameter locale has been added.
gzfileuse_include_path is now of type bool. Previously, it was of type int.
gzopenuse_include_path is now of type bool. Previously, it was of type int.
hrtimeOn macOS, the implementation now uses clock_gettime_nsec_np(CLOCK_UPTIME_RAW) instead of mach_absolute_time().
imagecopyresampledThe return type is true now; previously, it was bool.
imagedestroyThis function has been deprecated.
ldap_connectCalling ldap_connect with Oracle wallet arguments is deprecated. Oracle LDAP (Oracle Instant Client) support is deprecated as of PHP 8.5.0.
ldap_connect_walletThis function has been deprecated. Oracle LDAP (Oracle Instant Client) support is deprecated in PHP 8.5.0.
ldap_get_optionldap is now nullable. A ValueError is now thrown when passing an invalid option.
ldap_set_optionA ValueError is now thrown when passing an invalid option.
libxml_set_external_entity_loaderThe return type is true now; previously, it was bool.
listDestructuring a non-array value (other than null) now emits an E_WARNING.
mailWhen using the sendmail transport, the actual sendmail error is now reported, and unexpected termination of the sendmail process is detected. In such cases, an E_WARNING is emitted and false is returned. Previously, these errors were silently ignored.
ob_startTrying to produce output (e.g. with echo) within the user output handler callback is now deprecated. The deprecation warning bypasses the handler and is output directly.
openssl_cms_encryptcipher_algo is now of type int or string. Previously, it was of type int.
openssl_pkey_deriveThe parameter key_length is now deprecated.
openssl_private_decryptThe optional parameter digest_algo has been added.
openssl_public_encryptThe optional parameter digest_algo has been added.
openssl_signThe optional parameter padding has been added.
openssl_verifyThe optional parameter padding has been added.
ordPassing a string which is not a single byte is now deprecated.
pcntl_execA ValueError is now thrown if any entry of args contains a null byte, or if any entry or key of env_vars contains a null byte.
pcntl_waitidresource_usage was added.
pg_connectA ValueError is now thrown if connection_string contains null bytes.
pg_copy_fromrows is now of type iterable. Previously, it was of type array.
posix_fpathconfNow sets last_error to EBADF and raises an E_WARNING when an invalid file descriptor is encountered.
posix_isattyNow raises an E_WARNING when an invalid file_descriptor is encountered.
posix_killNow throws a ValueError when process_id is lower or greater than what the platform supports (signed integer or long range).
posix_setpgidNow throws a ValueError when process_id or process_group_id is lower than zero or greater than what the platform supports.
posix_setrlimitNow throws a ValueError when hard_limit or soft_limit is lower than -1, or when soft_limit is greater than hard_limit.
posix_ttynamelast_error is now set to EBADF when an invalid file_descriptor is encountered.
printfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
readdirUsing null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided.
readgzfileuse_include_path is now of type bool. Previously, it was of type int.
readline_add_historyThe return type is true now; previously, it was bool.
readline_callback_handler_installThe return type is true now; previously, it was bool.
readline_clear_historyThe return type is true now; previously, it was bool.
register_tick_functionTick handlers are now deactivated later during request shutdown: after all shutdown functions and destructors have run, and after the output handlers have been cleaned up. Previously they were deactivated at the very beginning of request shutdown, so tick functions were no longer called during shutdown functions, destructors, or output handling. See the migration guide for details.
rewinddirUsing null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided.
session_get_cookie_paramsThe "partitioned" entry was added in the returned array.
session_set_cookie_paramsThe "partitioned" entry was added in the lifetime_or_options array. If set to true, the cookie will be marked as Partitioned (CHIPS).
session_startNow throws a ValueError if the options array has non-string keys, and a TypeError if the read_and_close value is not compatible with int.
session_write_closeIf $_SESSION contains a key with a pipe character (|), an E_WARNING is now emitted. Previously, this would silently fail to write the session data.
setcookieThe "partitioned" entry was added in the options array. If set to true, the cookie will be marked as Partitioned (CHIPS).
setlocalePassing an integer 0 as the locales argument is no longer supported and now throws a TypeError.
setrawcookieThe "partitioned" entry was added in the options array. If set to true, the cookie will be marked as Partitioned (CHIPS).
shm_detachThe return type is true now; previously, it was bool.
snmp2_getNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
snmp2_setNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
snmp3_getNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
snmp3_setNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
snmpgetNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
snmpsetNow throws a ValueError when the hostname length is equal to or greater than 128 bytes, when the port is negative or greater than 65535, or when the timeout or retries values are lower than -1 or too large.
socket_addrinfo_lookupNow throws a TypeError if any value of the hints array cannot be cast to int, and may throw a ValueError if any of these values overflow.
socket_bindNow throws a ValueError when port is lower than 0 or greater than 65535.
socket_createNow supports creating AF_PACKET family sockets.
socket_create_listenNow throws a ValueError when port is lower than 0 or greater than 65535.
socket_getsocknameNow retrieves the interface index and its string representation when used on an AF_PACKET family socket.
socket_sendtoNow throws a ValueError when port is lower than 0 or greater than 65535.
socket_set_optionNow throws an exception when MCAST_LEAVE_GROUP or MCAST_LEAVE_SOURCE_GROUP is used and the value is not a valid object or array, and throws a ValueError when a multicast option is used on a socket that is not of AF_INET or AF_INET6 family.
spl_autoload_unregisterPassing the spl_autoload_call function as a callback argument to unregister all autoloaders has been deprecated. Instead iterate over the return value of spl_autoload_functions and call spl_autoload_unregister on each value.
sprintfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
vfprintfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
vprintfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
vsprintfA formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision.
xml_parser_freeThis function has been deprecated.
IntlListFormatter::__constructThe class was added.
Locale::isRightToLeftAdded Locale::isRightToLeft.
mysqli::__constructCalling the constructor on an already-constructed object now throws an Error.
Pdo\Pgsql::copyFromArrayrows now also accepts a Traversable; previously only an array was accepted.
PDO::__constructThe uri: DSN scheme is now deprecated.
PDO::pgsqlCopyFromArrayThe rows parameter now also accepts a Traversable; previously only an array was accepted.
PDO::quoteWhen using the SQLite driver, a PDOException is now thrown or a warning is emitted, depending on the error mode, if the string contains a null byte; previously the string was silently truncated at the null byte.
PDOStatement::fetchAllUsing PDO::FETCH_INTO as a fetch mode now throws a ValueError, similar to PDO::FETCH_LAZY. Using PDO::FETCH_PROPS_LATE with a fetch mode other than PDO::FETCH_CLASS now throws a ValueError.
PDOStatement::setAttributeWhen using the Firebird driver, a ValueError is now thrown if the cursor name set via PDO::ATTR_CURSOR_NAME is too long.
PDOStatement::setFetchModeThe constructorArgs for PDO::FETCH_CLASS now follow CUFA (call_user_func_array) semantics: string keys act as named arguments, and automatic wrapping of by-value arguments for by-reference parameters has been removed.
PDOStatement::setFetchModeCalling this method during a call to PDOStatement::fetch, PDOStatement::fetchObject, or PDOStatement::fetchAll now throws an Error.
ReflectionClass::getConstantCalling ReflectionClass::getConstant for constants that do not exist has been deprecated.
ReflectionConstant::getAttributesThis method was introduced.
ReflectionMethod::setAccessibleThis method has been deprecated, as it no longer has an effect.
ReflectionProperty::getDefaultValueCalling ReflectionProperty::getDefaultValue for properties without default values has been deprecated.
ReflectionProperty::getMangledNameThis method was introduced.
ReflectionProperty::setAccessibleThis method has been deprecated, as it no longer has an effect.
SimpleXMLElement::xpathIf the XPath expression returns something other than a node set, an E_WARNING is now emitted and false is returned. Previously, an empty array was returned silently.
SoapClient::__doRequestThe optional parameter uriParserClass has been added.
SoapFault::__constructThe optional parameter lang has been added in order to be compliant with the SOAP 1.2 specification.
SoapServer::faultThe optional parameter lang has been added in order to be compliant with the SOAP 1.2 specification.
SplFileObject::fwritelength is now nullable.
SplObjectStorage::attachThis method has been deprecated in favor of SplObjectStorage::offsetSet.
SplObjectStorage::containsThis method has been deprecated in favor of SplObjectStorage::offsetExists.
SplObjectStorage::detachThis method has been deprecated in favor of SplObjectStorage::offsetUnset.
SQLite3Stmt::busyThis method was added.
tidy::__constructNow throws a ValueError if config contains an unknown option or attempts to set a read-only one, and a TypeError if a configuration key is not a string, or if an option does not accept the given value.
tidy::parseFileNow throws a ValueError if config contains an unknown option or attempts to set a read-only one, and a TypeError if a configuration key is not a string, or if an option does not accept the given value.
tidy::parseStringNow throws a ValueError if config contains an unknown option or attempts to set a read-only one, and a TypeError if a configuration key is not a string, or if an option does not accept the given value.
XSLTProcessor::getParameterThe namespace argument now takes effect; previously it was ignored. A ValueError is now thrown if namespace is not empty and name uses Clark notation or is a QName.
XSLTProcessor::removeParameterThe namespace argument now takes effect; previously it was ignored. A ValueError is now thrown if namespace is not empty and name uses Clark notation or is a QName.
XSLTProcessor::setParameterThe namespace argument now takes effect; previously it was ignored. A ValueError is now thrown if namespace is not empty and name (or one of its keys, if it is an array) uses Clark notation or is a QName.
8.4.0DateInterval::createFromDateStringNow has a tentative return type of DateInterval. Previously it was DateIntervalfalse.
DatePeriod::__constructThe signature using isostr has been deprecated, use DatePeriod::createFromISO8601String instead.
DateTime::modifyNow has a tentative return type of DateTime. Previously it was DateTimefalse.
DateTimeImmutable::modifyNow has a tentative return type of DateTimeImmutable. Previously it was DateTimeImmutablefalse.
DOMDocument::registerNodeClassDOMDocument::registerNodeClass now has a tentative return of true.
DOMImplementation::createDocumentThe function now has the tentative return type DOMDocument.
DOMXPath::registerPhpFunctionsIt is now possible to use callables for callbacks when using restrict with array entries.
Invalid callback names now throws a ValueError. Passing a non-callable entry now throws a TypeError.
bcpowNegative powers of 0 previously returned 0, but now throw a DivisionByZeroError exception.
bind_textdomain_codesetNow throws a ValueError if domain is the empty string.
bind_textdomain_codesetcodeset is optional now. Previously, the parameter always had to be specified.
bindtextdomaindirectory is optional now. Previously, the parameter always had to be specified.
curl_getinfoIntroduced CURLINFO_POSTTRANSFER_TIME_T constant and posttransfer_time_us (Curl 8.10.0 or later).
curl_multi_selectNow throws a ValueError if timeout is less than 0 or greater than PHP_INT_MAX.
curl_setoptCURLOPT_DNS_USE_GLOBAL_CACHE no longer has any effect, and enabling it on thread-safe PHP builds no longer triggers a warning.
curl_versionfeatures_list added.
dba_closeThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_deleteThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_existsThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_fetchThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_firstkeyThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_insertThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_key_splitPassing null or false to key is now deprecated.
dba_nextkeyThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_openReturns a Dba\Connection instance now; previously, a resource was returned.
dba_optimizeThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_popenReturns a Dba\Connection instance now; previously, a resource was returned.
dba_replaceThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
dba_syncThe dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected.
debug_zval_dumpdebug_zval_dump now indicates whether an array is packed.
dgettextNow throws a ValueError if domain is the empty string.
dngettextNow throws a ValueError if domain is the empty string.
exitexit is now a proper function, therefore it follows the usual type juggling semantics is affected by the strict_types declare, can be called with named arguments, and be a variable functions.
exitA parameterless exit called within shutdown functions or object destructors now resets the exit code to 0; previously the exit code set by an earlier exit call was kept.
fgetcsvRelying on the default value of escape is now deprecated.
flushFlushing headers without a body will now succeed in FastCGI.
fputcsvRelying on the default value of escape is now deprecated.
hash_initPassing options of a wrong type is now deprecated.
hash_updateNow has a return type of true instead of bool.
highlight_stringReturn type changed from stringbool to stringtrue.
http_build_queryPrior to PHP 8.4.0, BackedEnum properties of data were converted to objects, rather than their scalar equivalents.
idn_to_asciiNow throws a ValueError if the domain parameter is empty.
idn_to_asciiNow throws a ValueError if the variant parameter is not INTL_IDNA_VARIANT_UTS46.
idn_to_utf8Now throws a ValueError if the domain parameter is empty.
idn_to_utf8Now throws a ValueError if the variant parameter is not INTL_IDNA_VARIANT_UTS46.
imageavifNow throws a ValueError if quality or speed is invalid.
imagefilterNow throws a ValueError if sub or plus would cause over-/underflow with the IMG_FILTER_SCATTER filter.
imagejpegNow throws a ValueError if quality is invalid.
imagepngNow throws a ValueError if quality is invalid.
imagescaleNow throws a ValueError if width or height would cause over-/underflow.
imagescaleNow throws a ValueError if mode is invalid.
imagewebpNow throws a ValueError if quality is invalid.
lcg_valueThis function has been deprecated.
ldap_connectCalling ldap_connect with more than two arguments is now deprecated.
ldap_exopUsing more than 4 parameters has been deprecated, use ldap_exop_sync instead.
libxml_set_streams_contextlibxml_set_streams_context now throws a TypeError when a non-stream resource is passed to context, instead of throwing later when the context is used.
long2ipReturn type changed from stringfalse to string.
mb_decode_numericentityThe mb_decode_numericentity function now throws a ValueError if map contains any value that cannot be implicitly converted to int.
mb_encode_numericentityThe mb_encode_numericentity function now throws a ValueError if map contains any value that cannot be implicitly converted to int.
mb_http_outputmb_http_output now throws a ValueError if encoding contains null bytes.
mb_strcutThe behavior is more consistent now on invalid UTF-8 and UTF-16 strings.
odbc_autocommitodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_binmodestatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_closeodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_columnprivilegesodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_columnsodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_commitodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_connectThis function returns a Odbc\Connection instance now; previously, a resource was returned.
odbc_connectuser and password are now nullable, they are now also optional and default to null.
odbc_connectPreviously, using an empty string for password would not include pwd in the generated connection string for dsn. It is now generated to include a pwd which has an empty string as its value. To restore the previous behaviour password can now be set to null.
odbc_connectPreviously, if dsn contained uid or pwd both user and password parameters were ignored. Now user is only ignored if dsn contains uid, and password is only ignored if dsn contains pwd.
odbc_cursorstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_data_sourceodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_errorodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_errormsgodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_execodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_execThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_executeThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_fetch_arraystatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_fetch_arrayrow is now nullable, and its default value changed from -1 to null, consistent with odbc_fetch_row.
odbc_fetch_intostatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_fetch_intorow is now nullable, and its default value changed from 0 to null, consistent with odbc_fetch_row.
odbc_fetch_objectstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_fetch_objectrow is now nullable, and its default value changed from -1 to null, consistent with odbc_fetch_row.
odbc_fetch_rowstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_fetch_rowAn E_WARNING is now emitted when row is equal or less than zero.
odbc_field_lenstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_field_namestatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_field_numstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_field_scalestatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_field_typestatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_foreignkeysodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_foreignkeysThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_free_resultstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_gettypeinfoodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_gettypeinfoThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_longreadlenstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_next_resultstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_num_fieldsstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_num_rowsstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_pconnectThis function returns a Odbc\Connection instance now; previously, a resource was returned.
odbc_pconnectuser and password are now nullable, they are now also optional and default to null.
odbc_pconnectPreviously, using an empty string for password would not include pwd in the generated connection string for dsn. It is now generated to include a pwd which has an empty string as its value. To restore the previous behaviour password can now be set to null.
odbc_pconnectPreviously, if dsn contained uid or pwd both user and password parameters were ignored. Now user is only ignored if dsn contains uid, and password is only ignored if dsn contains pwd.
odbc_prepareodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_prepareThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_primarykeysodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_primarykeysThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_procedurecolumnsodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_procedurecolumnsThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_proceduresodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_proceduresThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_resultstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_result_allstatement expects an Odbc\Result instance now; previously, a resource was expected.
odbc_rollbackodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_setoptionodbc expects an Odbc\Connection or an Odbc\Result instance now; previously, a resource was expected.
odbc_specialcolumnsodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_specialcolumnsThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_statisticsodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_statisticsThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_tableprivilegesodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_tableprivilegesThis function returns an Odbc\Result instance now; previously, a resource was returned.
odbc_tablesodbc expects an Odbc\Connection instance now; previously, a resource was expected.
odbc_tablesThis function returns an Odbc\Result instance now; previously, a resource was returned.
openssl_csr_newThe distinguished_names associative array now supports arrays as values, allowing multiple values to be specified for a single attribute.
openssl_csr_newThe extra_attributes parameter now correctly sets the CSR attributes, rather than modifying the subject's Distinguished Name as it previously did incorrectly.
openssl_csr_signThe serial_hex parameter is added.
openssl_password_hashFunction added.
openssl_password_verifyFunction added.
openssl_pkey_get_detailsAdded support for Curve25519 and Curve448 based keys. Specifically the x25519, ed25519, x448 and ed448 fields have been introduced.
openssl_pkey_newAdded support for Curve25519 and Curve448 based keys with the introduction of the x25519, ed25519, x448, and ed448 fields.
openssl_x509_parseParsing certificate with no seconds in UTCTime is no longer allowed for any OpenSSL version. It was already disallowed for OpenSSL version 3.3+.
password_hashThe default value of the cost option of the PASSWORD_BCRYPT algorithm was increased from 10 to 12.
pcntl_sigprocmaskA ValueError is thrown if signals is empty, unless mode is SIG_SETMASK.
pcntl_sigprocmaskA TypeError is thrown if signals value is not an int.
pcntl_sigprocmaskA ValueError is thrown if signals value is invalid.
pcntl_sigprocmaskA ValueError is thrown if mode value is not SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK.
pcntl_sigtimedwaitOn failure, false is now returned; previously -1 was returned in some cases.
pcntl_sigtimedwaitA ValueError is thrown if signals is empty.
pcntl_sigtimedwaitA TypeError is thrown if signals value is not an int.
pcntl_sigtimedwaitA ValueError is thrown if signals value is invalid.
pcntl_sigtimedwaitA ValueError is thrown if seconds value is less than 0.
pcntl_sigtimedwaitA ValueError is thrown if nanoseconds value is not between 0 and 1e9.
pcntl_sigtimedwaitA ValueError is thrown if both seconds and nanoseconds values are 0.
pcntl_sigwaitinfoOn failure, false is now returned; previously -1 was returned in some cases.
pcntl_sigwaitinfoA ValueError is thrown if signals is empty.
pcntl_sigwaitinfoA TypeError is thrown if signals value is not an int.
pcntl_sigwaitinfoA ValueError is thrown if signals value is invalid.
pg_fetch_resultThe two argument signature of pg_fetch_result (result, field) is now deprecated. Use the three argument signature with row set to null instead.
pg_field_is_nullThe two argument signature of pg_field_is_null (result, field) is now deprecated. Use the three argument signature with row set to null instead.
pg_field_prtlenThe two argument signature of pg_field_prtlen (result, field_name_or_number) is now deprecated. Use the three argument signature with row set to null instead.
pg_selectconditions is now optional.
php_unameThrows a ValueError when an invalid mode is specified.
posix_isattySet errno (error number) to EBADF when the file descriptor/stream passed is invalid.
powRaising 0 to a negative exponent is now deprecated.
print_rReturn type changed from stringbool to stringtrue.
roundFour new rounding modes have been added.
roundNow throws a ValueError if mode is invalid.
session_set_save_handlerCalling session_set_save_handler with more than two arguments is now deprecated. Use the two argument signature instead.
simplexml_import_domAdded support for Dom\Document.
simplexml_import_domThis function now throws a TypeError instead of a ValueError when passed a non-XML or non-HTML node.
socket_create_listenThe default value of backlog is now SOMAXCONN. Previously it was 128.
sodium_crypto_aead_aes256gcm_decryptThis function is now also defined on aarch64. Previously it was only defined on x86 and x86_64.
sodium_crypto_aead_aes256gcm_encryptThis function is now also defined on aarch64. Previously it was only defined on x86 and x86_64.
sodium_crypto_aead_aes256gcm_is_availableThis function may now return true on aarch64 CPUs with the ARM cryptographic extensions. Previously, hardware-accelerated AES-256-GCM was only detected on x86 and x86_64, and this function always returned false on aarch64.
sodium_crypto_aead_aes256gcm_keygenThis function is now also defined on aarch64. Previously it was only defined on x86 and x86_64.
str_getcsvRelying on the default value of escape is now deprecated.
str_getcsvNow throws a ValueError if separator, enclosure, or escape is invalid. This mimics the behavior of fgetcsv and fputcsv.
strcspnPrior to PHP 8.4.0, when characters was the empty string, the search would incorrectly stop at the first null byte in string.
stream_bucket_appendbucket expects a StreamBucket instance now; previously, an stdClass was expected.
stream_bucket_make_writeableThis function returns a StreamBucket instance now; previously, an stdClass was returned.
stream_bucket_newThis function returns a StreamBucket instance now; previously, an stdClass was returned.
stream_bucket_prependbucket expects a StreamBucket instance now; previously, an stdClass was expected.
stream_context_set_optionThe alternative 2-parameter signature is now deprecated. Use stream_context_set_options instead.
tempnamThe name of files created by tempnam are now 13 bytes longer. The total length is still platform-dependent.
textdomainNow throws a ValueError if domain is the empty string.
textdomaindomain is optional now. Previously, the parameter always had to be specified.
trigger_errorPassing E_USER_ERROR as the error_level is now deprecated. Throw an Exception or call exit instead.
trigger_errorThe function now has a return type of true instead of bool.
unserializeNow throws TypeError and ValueError if the allowed_classes element of options is neither an array of class names nor a bool.
unserializeUnserializing strings using the uppercase "S" tag is now deprecated; use the lowercase "s" tag instead.
xml_parser_set_optionAdded the option XML_OPTION_PARSE_HUGE.
xml_set_character_data_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_character_data_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_default_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_default_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_element_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_element_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_end_namespace_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_end_namespace_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_external_entity_ref_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_external_entity_ref_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_notation_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_notation_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_objectThis function is now deprecated, instead pass proper callable values to xml_set_
xml_set_processing_instruction_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_processing_instruction_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_start_namespace_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_start_namespace_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
xml_set_unparsed_entity_decl_handlerPassing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
xml_set_unparsed_entity_decl_handlerThe validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
IntlCalendar::setThis had been deprecated in favor of the methods IntlCalendar::setDate and IntlCalendar::setDateTime.
IntlDateFormatter::createA ValueError is thrown if locale is invalid.
IntlGregorianCalendar::__constructThis had been deprecated in favor of the methods IntlGregorianCalendar::createFromDate and IntlGregorianCalendar::createFromDateTime.
mysqli::killBoth mysqli::kill and mysqli_kill are now deprecated. Use the KILL SQL command instead.
mysqli::pingBoth mysqli::ping and mysqli_ping are now deprecated. As of PHP 8.2.0, the reconnect feature is no longer available, making this function obsolete.
mysqli::queryWhen connecting to MySQL 8.0.24 or later, the error code reported for a server wait timeout is now 4031 (ER_CLIENT_INTERACTION_TIMEOUT) instead of 2006 (CR_SERVER_GONE_ERROR).
mysqli::refreshBoth mysqli::refresh and mysqli_refresh are now deprecated. Use FLUSH SQL commands instead.
mysqli::store_resultPassing the mode parameter is now deprecated. The parameter has had no effect as of PHP 8.1.0.
NumberFormatter::createA ValueError is thrown if locale is invalid.
Pdo\Sqlite::createCollationA TypeError is now thrown if the callback does not return an int; previously the returned value was cast to int.
PDO::getAttributeIt is now possible to fetch the value of the PDO::ATTR_STRINGIFY_FETCHES attribute.
PDO::getAttributeThe value of PDO::ATTR_AUTOCOMMIT is now returned as bool by the MySQL and Firebird drivers, and the value of PDO::ATTR_EMULATE_PREPARES and PDO::MYSQL_ATTR_DIRECT_QUERY is now returned as bool by the MySQL driver; previously, they were returned as int.
PDOStatement::setFetchModeThe return type is true now; previously, it was bool.
Phar::setAliasPhar::setAlias now has a tentative return of true.
Phar::setDefaultStubPhar::setDefaultStub now has a tentative return of true.
Phar::setStubThe return type is true now; previously, it was bool.
PharData::setStubThe return type is true now; previously, it was bool.
PDO_ODBC DSNWhen passing an empty string to the password argument in the PDO constructor, pwd was not included in the connection string created until now, but the behavior has been changed to include it as an empty string. Passing null for the password argument in the PDO constructor results in the same behavior as before.
PDO_ODBC DSNChanged the behavior to ignore the user name argument and the password argument in the PDO constructor separately when the DSN contains uid or pwd. Previously, if included only either uid or pwd in the DSN, both the user name argument and the password argument in the PDO constructor were ignored.
ReflectionClassConstant::__toStringThe attached doc comment is now included.
ReflectionGenerator::getFunctionReflectionGenerator::getFunction may now be called after the generator finished executing.
ReflectionProperty::__toStringThe attached doc comment is now included.
ResourceBundle::getA TypeError is thrown if the offset type is invalid. A ValueError is thrown if if index is a string and is empty or is a int and does not fit into a 32 bit integer type.
SoapServer::addFunctionPassing an int to SoapServer::addFunction, including SOAP_FUNCTIONS_ALL, has been deprecated.
SoapServer::setPersistenceSOAP_PERSISTENCE_SESSION now works when the session extension is built as a shared module; previously it failed silently. SoapServer::setPersistence now also throws an Error when SOAP_PERSISTENCE_SESSION is requested while the session extension is not available.
SoapVar::__constructAn instance of DateTimeInterface used as the value for an xsd:dateTime element, or a similar date and time type, is now serialized to its ISO 8601 representation, instead of being serialized as an empty string.
SplFileObject::fgetcsvRelying on the default value of escape is now deprecated.
SplFileObject::fputcsvRelying on the default value of escape is now deprecated.
SplFileObject::setCsvControlRelying on the default value of escape is now deprecated.
SplFixedArray::setSizeSplFixedArray::setSize now has a tentative return of true.
SplFixedArray::__wakeupThis method is now deprecated, use SplFixedArray::__unserialize instead.
SplHeap::insertSplHeap::insert now has a tentative return of true.
SplHeap::recoverFromCorruptionSplHeap::recoverFromCorruption now has a tentative return of true.
SplPriorityQueue::insertSplPriorityQueue::insert now has a tentative return of true.
SplPriorityQueue::recoverFromCorruptionSplPriorityQueue::recoverFromCorruption now has a tentative return of true.
tidy::__constructFailures when executing the constructor now throw instead of silently creating an unusable object.
XMLReader::openPassing an invalid encoding will now throw a ValueError.
XMLReader::XMLPassing an invalid encoding will now throw a ValueError.
XMLWriter::startDocumentPassing an encoding containing null bytes will now throw a ValueError.
XSLTProcessor::importStylesheetAdded support for Dom\Document.
XSLTProcessor::importStylesheetNow throws a TypeError instead of a ValueError if stylesheet is not an XML object.
XSLTProcessor::registerPHPFunctionsInvalid callback names now throws a ValueError. Passing a non-callable entry now throws a TypeError.
XSLTProcessor::registerPHPFunctionsIt is now possible to use callables for callbacks when using functions with array entries.
XSLTProcessor::setParameterNow throws a ValueError if any of the arguments contain null bytes instead of silently truncating.
XSLTProcessor::setParameterIt is now possible to set a parameter value containing both single and double quotes. Prior to PHP 8.4.0, this resulted in a warning.
XSLTProcessor::transformToDocNow throws an Error if the callback cannot be invoked, instead of emitting a warning.
XSLTProcessor::transformToDocAdded support for Dom\Document.
XSLTProcessor::transformToUriNow throws an Error if the callback cannot be invoked, instead of emitting a warning.
XSLTProcessor::transformToUriAdded support for Dom\Document.
XSLTProcessor::transformToXmlNow throws an Error if the callback cannot be invoked, instead of emitting a warning.
XSLTProcessor::transformToXmlAdded support for Dom\Document.
8.3.5restore_exception_handlerThe exception handler being invoked is now pushed onto the handler stack, so restore_exception_handler called from within an exception handler re-installs the handler that is currently running; restoring the handler that was active before it now requires two calls.
set_exception_handlerThe exception handler being invoked is now pushed onto the handler stack and re-installed once it returns, unless the handler modified the stack itself.
8.3.2mb_strstrOn invalid strings (those with encoding errors) and on SJIS-mac (MacJapanese) strings, the portion of haystack returned when before_needle is true is now determined from the same character indices as the other mbstring functions.
mb_substrOn invalid strings (those with encoding errors), character indices are now interpreted in the same manner as most other mbstring functions. This means that character indices returned by mb_strpos can be passed directly. For SJIS-mac (MacJapanese) strings, character indices now refer to the indices of the Unicode codepoints produced when the string is converted to Unicode, which differ from the character indices for the SJIS-mac characters that convert to a sequence of several codepoints.
8.3.0DateInterval::__constructNow throws DateMalformedIntervalStringException instead of Exception.
DateInterval::createFromDateStringDateInterval::createFromDateString now throws DateMalformedIntervalStringException if an invalid string is passed. Previously, it returned false, and a warning was emitted. date_interval_create_from_date_string has not been changed.
DatePeriod::__constructNow throws DateMalformedPeriodStringException instead of Exception.
DateTime::__constructNow throws DateMalformedStringException if an invalid string is passed, instead of Exception.
DateTimeInterface::getTimestampThe out-of-range exception is now DateRangeError.
DateTime::modifyDateTime::modify now throws DateMalformedStringException if an invalid string is passed. Previously, it returned false, and a warning was emitted. date_modify has not been changed.
DateTime::subNow throws a DateInvalidOperationException with DateTime::sub, instead of a warning when an unsupported operation is attempted. date_sub has not been changed.
DateTimeImmutable::__constructNow throws DateMalformedStringException if an invalid string is passed, instead of Exception.
DateTimeImmutable::modifyDateTimeImmutable::modify now throws DateMalformedStringException if an invalid string is passed. Previously, it returned false, and a warning was emitted.
DateTimeImmutable::subNow throws a DateInvalidOperationException instead of a warning when an unsupported operation is attempted.
DateTimeZone::__constructInvalid values now return a DateInvalidTimeZoneException instead of a generic Exception.
DOMCharacterData::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::appendDataThis function now has a tentative true return type.
DOMCharacterData::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMCharacterData::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMChildNode::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::createAttributeNSCalling this method without specifying a prefix will now choose a prefix instead of assuming the default namespace. Previously this would create an attribute without a prefix and incorrectly apply the namespace to the owner element because default namespaces don't apply on attributes.
DOMDocument::createAttributeNSCalling this method using a prefix that was already declared on the owner element with a different namespace URI will now change the new prefix to avoid creating namespace conflicts. This aligns the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_NAMESPACE_ERR.
DOMDocument::loadThis function now has a tentative bool return type.
DOMDocument::loadHTMLThis function now has a tentative bool return type.
DOMDocument::loadHTMLFileThis function now has a tentative bool return type.
DOMDocument::loadXMLThis function now has a tentative bool return type.
DOMDocument::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocument::saveXMLLIBXML_NOXMLDECL is now supported.
DOMDocumentFragment::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocumentFragment::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMDocumentFragment::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::afterCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::afterCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::beforeCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMElement::replaceWithCalling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::appendCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::prependCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
DOMParentNode::replaceChildrenCalling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
FFI::castCalling FFI::cast statically is now deprecated.
FFI::cdefC functions returning void return a PHP null instead of FFI\CType::TYPE_VOID.
FFI::loadFFI::load is now allowed in preload scripts when the current system user is the same as the one defined in the opcache.preload_user configuration directive.
FFI::newCalling FFI::new statically is now deprecated.
FFI::typeCalling FFI::type statically is now deprecated.
array_padPrior to 8.3, only 1048576 elements could be added at once. Now it is limited only by the maximum size of an array instead.
array_productNow emits E_WARNING when array values cannot be converted to int or float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now cast instead of ignored.
array_sumNow emits E_WARNING when array values cannot be converted to int or float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now cast instead of ignored.
assertAll assert. INI settings have been deprecated.
assert_optionsassert_options is now deprecated.
class_aliasclass_alias now supports creating an alias of an internal class.
curl_getinfoIntroduced CURLINFO_CAINFO and CURLINFO_CAPATH.
dba_fetchCalling dba_fetch with dba as the 3rd argument is now deprecated.
easter_dateOn 64-bit systems, the year parameter now accepts values within the range of 1970 to 2,000,000,000.
fgetcsvAn empty string is returned instead of a string with a single null byte for the last field if it contains only an unterminated enclosure.
fileValueError is thrown for any invalid values of flags.
gc_statusgc_status now returns the following additional fields: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time", and "free_time".
get_classCalling get_class without an argument now emits an E_DEPRECATED warning; previously, calling this function inside a class returned the name of that class.
get_parent_classCalling get_parent_class without an argument now emits an E_DEPRECATED warning; previously, calling this function inside a class returned the name of that class.
highlight_fileThe resulting HTML has changed.
highlight_stringThe resulting HTML has changed.
imagerotateThe unused ignore_transparent has been completely removed.
ldap_connectCalling ldap_connect with separate hostname and port is now deprecated.
mb_convert_caseImplemented conditional casing rules for the Greek letter sigma which only apply to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.
mb_decode_mimeheaderUnderscores are converted to spaces as specified by RFC 2047.
mb_encode_mimeheaderNUL (0) bytes are no longer dropped when encoded using Quoted-Printable encoding, but encoded as =00.
mb_strimwidthPassing a negative width to mb_strimwidth is now deprecated.
mb_strtolowerImplemented conditional casing rules for the Greek letter sigma.
mt_srandseed is now nullable.
number_formatAdded handling of negative values for decimals.
odbc_autocommitenable is now nullable.
openssl_pkey_newAdded support for generation EC keys with custom EC parameters. Specifically with the introduction of the EC options: p, a, b, seed, generator, g_x, g_y, cofactor, and order.
password_hashpassword_hash now sets the underlying Random\RandomException as the Exception::$previous exception when a ValueError is thrown due to a failure in the salt generation.
pg_convertNow throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
pg_fetch_objectNow throws a ValueError exception when the constructor_args is non-empty with the class not having a constructor; previously an Exception was thrown.
pg_fetch_resultrow is now nullable.
pg_field_is_nullrow is now nullable.
pg_field_prtlenrow is now nullable.
pg_insertNow throws a ValueError error when the specified table is invalid; previously an E_WARNING was emitted.
pg_insertNow throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
pg_tracetrace_mode has been added.
posix_eaccessChecks the effective user/group for a file, differing from posix_access which checks from the real user/group.
posix_getrlimitThe optional resource parameter has been added.
posix_isattyType error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.
posix_ttynameType error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.
posix_ttynameOn invalid file_descriptor integer values an E_WARNING is now raised.
proc_closeproc_close now returns the correct exit code even after proc_get_status was called first. Previously, -1 was returned in that case.
proc_get_statusThe "cached" entry has been added to the returned array. Prior to PHP 8.3.0, only the first call returned the real exit code. The "cached" entry indicates that the exit code was cached.
proc_openA ValueError will be thrown if command is an array without at least one non-empty element.
rangeIf both start and end are strings then range will now always produce an array of bytes. Previously if one of the boundary values was a numeric string, then the other boundary value was implicitly cast to int.
rangeAn E_WARNING is now emitted if start or end is a string that is implicitly cast to int because the other boundary value is a number.
rangeAn E_WARNING is now emitted if start or end is a non-numeric string with more than one byte.
rangeAn E_WARNING is now emitted if start or end is the empty string.
rangeIf step is a float with no fractional part, it will be interpreted as an int.
rangeA ValueError is now thrown if step is negative when producing an increasing range.
rangeA ValueError is now thrown if step is not finite.
rangeA TypeError is now thrown if start or end is an array, object, or resource. Previously they were implicitly cast to int.
restore_exception_handlerThe active exception handler is now unset while it runs.
set_exception_handlerThe active exception handler is now unset while it runs, so set_exception_handler called from within a handler reports no previously defined handler.
srandseed is now nullable.
str_getcsvAn empty string is returned instead of a string with a single null byte for the last field if it contains only an unterminated enclosure.
stream_notification_callbackSupport for STREAM_NOTIFY_COMPLETED implemented, earlier PHP versions would never trigger this notification.
strrchrThe before_needle parameter was added.
strtokNow emits E_WARNING when token is not provided.
unserializeNow emits E_WARNING when the input string has unconsumed data.
unserializeNow emits E_WARNING when the passed string is not unserializeable; previously E_NOTICE was emitted.
xml_parser_get_optionThe function now returns a boolean for boolean options.
xml_parser_set_optionThe value parameter now also accepts booleans. The options XML_OPTION_CASE_FOLDING and XML_OPTION_SKIP_WHITE are now boolean options.
IntlBreakIterator::setTextThis method now returns false on failure; previously it returns null.
IntlChar::enumCharNamesThis method now returns false on failure; previously it returns null.
IntlDateFormatter::setTimeZoneThis function now returns true on success; previously it returns null.
mysqli_result::fetch_objectNow throws a ValueError exception when the constructor_args is non-empty with the class not having a constructor; previously an Exception was thrown.
mysqli::pollNow throws a ValueError exception when neither the read nor error arguments are passed.
Phar::setStubCalling Phar::setStub with a resource and a length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource));
ReflectionClass::getStaticPropertiesThe return type of ReflectionClass::getStaticProperties has been changed to array from ?array.
ReflectionProperty::setValueCalling this method with a single argument is deprecated, instead use ReflectionProperty::setValue(null, $value) for static properties.
SQLite3::enableExceptionsCalling SQLite3::enableExceptions with enable as false will trigger a E_DEPRECATED warning.
ZipArchive::addFileZipArchive::FL_OPEN_FILE_NOW was added.
ZipArchive::addFileZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added.
ZipArchive::addGlobZipArchive::FL_OPEN_FILE_NOW was added.
ZipArchive::replaceFileZipArchive::FL_OPEN_FILE_NOW was added.
ZipArchive::replaceFileZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added.
8.2.9DateTimeImmutable::createFromFormatThe (space) specifier now also supports NBSP (U+A0) and NNBSP (U+202F) characters.
8.2.1SplFileObject::__toStringChanged from an alias of SplFileObject::fgets to an implementation of SplFileObject::current which returns a CSV string when the SplFileObject::READ_CSV flag is set.
8.2.0ArrayIterator::asortThe return type is true now; previously, it was bool.
ArrayIterator::ksortThe return type is true now; previously, it was bool.
ArrayIterator::natcasesortThe return type is true now; previously, it was bool.
ArrayIterator::natsortThe return type is true now; previously, it was bool.
ArrayIterator::uasortThe return type is true now; previously, it was bool.
ArrayIterator::uksortThe return type is true now; previously, it was bool.
ArrayObject::asortThe return type is true now; previously, it was bool.
ArrayObject::ksortThe return type is true now; previously, it was bool.
ArrayObject::natcasesortThe return type is true now; previously, it was bool.
ArrayObject::natsortThe return type is true now; previously, it was bool.
ArrayObject::uasortThe return type is true now; previously, it was bool.
ArrayObject::uksortThe return type is true now; previously, it was bool.
DateInterval::__constructOnly the y to f, invert, and days will be visible, including a new from_string boolean property.
DateInterval::createFromDateStringOnly the from_string and date_string properties will be visible when a DateInterval is created with this method.
DatePeriod::__constructThe DatePeriod::INCLUDE_END_DATE constant has been added.
DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
DateTimeInterface::formatThe format characters X and x have been added.
DateTimeImmutable::createFromFormatThe X and x format specifiers have been added.
DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
DateTimeImmutable::getLastErrorsBefore PHP 8.2.0, this function did not return false when there were no warnings or errors. Instead, it would always return the documented array structure.
FilesystemIterator::__constructPrior to PHP 8.2.0, FilesystemIterator::SKIP_DOTS was always set and could not be removed.
array_walkThe return type is true now; previously, it was bool.
array_walk_recursiveThe return type is true now; previously, it was bool.
arsortThe return type is true now; previously, it was bool.
asortThe return type is true now; previously, it was bool.
curl_getinfoIntroduced CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
curl_multi_setoptIntroduced CURLMOPT_MAX_CONCURRENT_STREAMS.
date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
dba_fetchdba_fetch's optional skip argument is now at the end in line with PHP userland semantics. The previously overloaded signature is still accepted but discouraged.
dba_openflags is added.
dba_openhandler is now nullable.
dba_popenflags is added.
getimagesizeNow returns the actual image dimensions, bits and channels of AVIF images; previously, the dimensions were reported as 0x0, and bits and channels were not reported at all.
idateAdds the N (ISO-8601 day of the week) and o (ISO-8601 year) format characters.
iterator_countThe type of iterator has been widened from Traversable to Traversablearray.
iterator_to_arrayThe type of iterator has been widened from Traversable to Traversablearray.
krsortThe return type is true now; previously, it was bool.
krsortThis function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules.
ksortThe return type is true now; previously, it was bool.
ksortThis function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules.
lcfirstCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
mb_convert_encodingmb_convert_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit".
mb_convert_kanaA ValueError is now thrown if the combination of different modes is invalid.
mb_detect_encodingmb_detect_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit".
natcasesortThe return type is true now; previously, it was bool.
natsortThe return type is true now; previously, it was bool.
openlogThe function now always returns true. Previously it returned false on failure.
pg_closeThe return type is true now; previously, it was bool.
pg_untraceThe return type is true now; previously, it was bool.
random_bytesIn case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.
random_intIn case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.
rsortThe return type is true now; previously, it was bool.
setcookieThe date format of the cookie is now 'D, d M Y H:i:s \G\M\T'; previously it was 'D, d-M-Y H:i:s T'.
snmp_set_enum_printThe return type is true now; previously, it was bool.
snmp_set_oid_output_formatThe return type is true now; previously, it was bool.
snmp_set_quick_printThe return type is true now; previously, it was bool.
snmp_set_valueretrievalThe return type is true now; previously, it was bool.
sortThe return type is true now; previously, it was bool.
str_ireplaceCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
str_splitIf string is empty an empty array is now returned. Previously an array containing a single empty string was returned.
strcasecmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
strcmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
striposCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
stristrCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
strnatcasecmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
strnatcmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
strncasecmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
strncmpThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
strriposCase folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.
strtolowerCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
strtoupperCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
substr_compareThis function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.
uasortThe return type is true now; previously, it was bool.
ucfirstCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
ucwordsCase conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted.
uksortThe return type is true now; previously, it was bool.
usortThe return type is true now; previously, it was bool.
utf8_decodeThis function has been deprecated.
utf8_encodeThis function has been deprecated.
var_exportExported class names are now fully qualified; previously, the leading backslash was omitted.
IntlCalendar::clearThe return type is true now; previously, it was bool.
IntlCalendar::setThe return type is true now; previously, it was bool.
IntlCalendar::setFirstDayOfWeekThe return type is true now; previously, it was bool.
IntlCalendar::setLenientThe return type is true now; previously, it was bool.
IntlCalendar::setRepeatedWallTimeOptionThe return type is true now; previously, it was bool.
IntlCalendar::setSkippedWallTimeOptionThe return type is true now; previously, it was bool.
ReflectionEnum::getBackingTypeThe return type is now declared as ?ReflectionNamedType. Previously, ?ReflectionType was declared.
8.1.14SplFileObject::__toStringChanged from an alias of SplFileObject::fgets to an implementation of SplFileObject::current which returns a CSV string when the SplFileObject::READ_CSV flag is set.
8.1.8DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
8.1.0DateTime::setTimeThe behaviour with double existing hours (during the fall-back DST transition) changed. Previously PHP would pick the second occurrence (after the DST transition), instead of the first occurrence (before DST transition).
DateTimeImmutable::setTimeThe behaviour with double existing hours (during the fall-back DST transition) changed. Previously PHP would pick the second occurrence (after the DST transition), instead of the first occurrence (before DST transition).
DateTimeZone::getTransitionsThe default value of timestampEnd has been changed to 2147483647. Previously, it was PHP_INT_MAX.
DirectoryIterator::keyWhen the iterator is uninitialized, an Error is thrown now. Previously, the method returned false.
DOMDocument::createCommentIn case of an error, a DomException is thrown now. Previously, false was returned.
DOMDocument::createDocumentFragmentIn case of an error, a DomException is thrown now. Previously, false was returned.
DOMDocument::createTextNodeIn case of an error, a DomException is thrown now. Previously, false was returned.
currentCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
date_sunriseThis function has been deprecated in favor of date_sun_info.
date_sunsetThis function has been deprecated in favor of date_sun_info.
dba_popenhandler is now nullable.
definevalue can now be an object.
endCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
exif_imagetypeAdded AVIF support.
finfo_bufferThe finfo parameter expects an finfo instance now; previously, a resource was expected.
finfo_closeThis function is a NOP now.
finfo_closeThe finfo parameter expects an finfo instance now; previously, a resource was expected.
finfo_fileThe finfo parameter expects an finfo instance now; previously, a resource was expected.
finfo_openReturns an finfo instance now; previously, a resource was returned.
finfo_set_flagsThe finfo parameter expects an finfo instance now; previously, a resource was expected.
fputcsvThe optional eol parameter has been added.
ftp_allocThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_appendThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_cdupThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_chdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_chmodThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_closeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_connectReturns an FTP\Connection instance now; previously, a resource was returned.
ftp_deleteThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_execThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_fgetThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_fputThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_getThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_get_optionThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_loginThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_mdtmThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_mkdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_mlsdThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nb_continueThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nb_fgetThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nb_fputThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nb_getThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nb_putThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_nlistThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_pasvThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_putThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_pwdThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_rawThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_rawlistThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_renameThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_rmdirThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_set_optionThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_siteThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_sizeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
ftp_ssl_connectReturns an FTP\Connection instance now; previously, a resource was returned.
ftp_systypeThe ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.
get_html_translation_tableflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
gmp_initSupport for explicit octal prefixes 0o and 0O has been added for num strings. Interpretation of such prefixes when base is 0 has also been added.
hashThe options parameter has been added.
hash_algosSupport for MurmurHash3 and xxHash algorithms has been added.
hash_fileThe options parameter has been added.
hash_initThe options parameter has been added.
html_entity_decodeflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlentitiesflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlspecialcharsflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
htmlspecialchars_decodeflags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
imagecharThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imagecharupThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imagefilledpolygonThe parameter num_points has been deprecated.
imagefontheightThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imagefontwidthThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imageloadfontReturns an GdFont instance now; previously, an int was returned.
imageopenpolygonThe parameter num_points has been deprecated.
imagepolygonThe parameter num_points has been deprecated.
imagestringThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imagestringupThe font parameter now accepts both an GdFont instance and an int; previously only int was accepted.
imagetypesIMG_AVIF added.
ini_setvalue now accepts any scalar type (including null). Previously, only string values were accepted.
json_last_errorJSON_ERROR_NON_BACKED_ENUM was added.
keyCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
ldap_addThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_add_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_add_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_bindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_bind_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_bind_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_compareThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_connectReturns an LDAP\Connection instance now; previously, a resource was returned.
ldap_count_entriesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_count_entriesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_count_referencesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_count_referencesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_deleteThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_delete_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_delete_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_errnoThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_errorThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_exopThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_exop_passwdThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_exop_refreshThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_exop_whoamiThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_first_attributeThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_first_attributeThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_first_entryThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_first_entryThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_first_entryReturns an LDAP\ResultEntry instance now; previously, a resource was returned.
ldap_free_resultThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_get_attributesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_attributesThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_get_dnThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_dnThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_get_entriesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_entriesThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_get_optionThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_valuesThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_valuesThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_get_values_lenThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_get_values_lenThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_listThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_listReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_mod_addThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_delThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_replaceThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_modify_batchThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_add_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_add_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_mod_del_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_del_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_mod_replace_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_mod_replace_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_next_attributeThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_next_attributeThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_next_entryThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_next_entryThe entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected.
ldap_next_entryReturns an LDAP\ResultEntry instance now; previously, a resource was returned.
ldap_parse_exopThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_parse_exopThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_parse_resultThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_parse_resultThe result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected.
ldap_readThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_readReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_renameThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_rename_extThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_rename_extReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_sasl_bindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_searchThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_searchReturns an LDAP\Result instance now; previously, a resource was returned.
ldap_set_optionThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_set_rebind_procThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
ldap_unbindThe ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected.
mb_check_encodingCalling this function with null as value or without argument is deprecated.
mhashThis function has been deprecated. Use the hash_*() functions instead.
mhash_countThis function has been deprecated. Use the hash_*() functions instead.
mhash_get_block_sizeThis function has been deprecated. Use the hash_*() functions instead.
mhash_get_hash_nameThis function has been deprecated. Use the hash_*() functions instead.
mhash_keygen_s2kThis function has been deprecated. Use the hash_*() functions instead.
nextCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
odbc_result_allThis function has been deprecated.
openssl_cms_encryptThe default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).
openssl_decrypttag is now nullable.
openssl_pkcs7_encryptThe default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).
pg_affected_rowsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_cancel_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_client_encodingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_closeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_connectReturns an PgSql\Connection instance now; previously, a resource was returned.
pg_connect_pollThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_connection_busyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_connection_resetThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_connection_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_consume_inputThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_convertThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_copy_fromThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_copy_toThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_dbnameThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_deleteThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_end_copyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_escape_byteaThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_escape_identifierThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_escape_literalThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_escape_stringThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_executeReturns an PgSql\Result instance now; previously, a resource was returned.
pg_executeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_fetch_allThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_all_columnsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_arrayThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_assocThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_objectThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_resultThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_fetch_rowThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_is_nullThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_nameThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_numThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_prtlenThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_sizeThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_tableThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_typeThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_field_type_oidThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_flushThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_free_resultThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_get_notifyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_get_pidThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_get_resultReturns an PgSql\Result instance now; previously, a resource was returned.
pg_get_resultThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_hostThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_insertReturns an PgSql\Result instance now; previously, a resource was returned.
pg_insertThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_last_errorThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_last_noticeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_last_oidThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_lo_closeThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_createThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_lo_exportThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_lo_importThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_lo_openReturns an PgSql\Lob instance now; previously, a resource was returned.
pg_lo_openThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_lo_readThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_read_allThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_seekThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_tellThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_truncateThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_lo_unlinkThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_lo_writeThe lob parameter expects an PgSql\Lob instance now; previously, a resource was expected.
pg_meta_dataThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_num_fieldsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_num_rowsThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_optionsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_parameter_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_pconnectReturns a PgSql\Connection instance now; previously, a resource was returned.
pg_pingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_portThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_prepareReturns an PgSql\Result instance now; previously, a resource was returned.
pg_prepareThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_put_lineThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_queryReturns an PgSql\Result instance now; previously, a resource was returned.
pg_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_query_paramsReturns an PgSql\Result instance now; previously, a resource was returned.
pg_query_paramsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_result_errorThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_result_error_fieldThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_result_seekThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_result_statusThe result parameter expects an PgSql\Result instance now; previously, a resource was expected.
pg_selectThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_send_executeThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_send_prepareThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_send_queryThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_send_query_paramsThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_set_client_encodingThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_set_error_verbosityThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_socketThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_traceThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_transaction_statusThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_ttyThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_untraceThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_updateThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
pg_versionThe connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.
prevCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
resetCalling this function on objects is deprecated. Either convert the object to an array using get_mangled_object_vars first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.
snmp3_getThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
snmp3_getnextThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
snmp3_real_walkThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
snmp3_setThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
snmp3_walkThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
stream_selectmicroseconds is now nullable.
strptimeThis function has been deprecated. Use date_parse_from_format instead (for locale-independent parsing), or IntlDateFormatter::parse (for locale-dependent parsing)
IntlDateFormatter::createParameters dateType and timeType are now optional.
MultipleIterator::currentA RuntimeException is now thrown if MultipleIterator::current is called on an invalid iterator. Previously, false was returned.
MultipleIterator::keyA RuntimeException is now thrown if MultipleIterator::key is called on an invalid iterator. Previously, false was returned.
mysqli_driver::$report_modeThe default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Previously, it was MYSQLI_REPORT_OFF.
mysqli_result::fetch_allNow also available when linking against libmysqlclient.
mysqli_stmt::executeThe optional params parameter has been added.
mysqli_stmt::next_resultNow also available when linking against libmysqlclient.
mysqli::__constructmysqli::connect now returns true instead of null on success.
mysqli::$client_infoCalling mysqli_get_client_info with the mysql argument has been deprecated. This function never required a parameter, but incorrectly allowed it as an optional parameter.
mysqli::$client_infoThe object-oriented style mysqli::get_client_info has been deprecated.
mysqli::initThe object-oriented style mysqli::init method has been deprecated. Replace calls to parent::init with parent::__construct.
Phar::buildFromDirectoryPhar::buildFromDirectory no longer returns false.
Phar::buildFromIteratorPhar::buildFromIterator no longer returns false.
PharData::buildFromDirectoryPharData::buildFromDirectory no longer returns false.
PharData::buildFromIteratorPharData::buildFromIterator no longer returns false.
ReflectionFunctionAbstract::isStaticThis method has been pulled up. Previously, it was only defined in ReflectionMethod.
ReflectionClassConstant::getNameThrows an Error in case the name property has not been initialized. Previously, the method returned false on failure.
ReflectionExtension::__cloneThis method is no longer final.
ReflectionFunctionAbstract::__cloneThis method is no longer final.
ReflectionMethod::setAccessibleCalling this method has no effect; all methods are invokable by default.
ReflectionParameter::__cloneThis method is no longer final.
ReflectionProperty::__cloneThis method is no longer final.
ReflectionProperty::getValuePrivate and protected properties can be accessed by ReflectionProperty::getValue right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible; otherwise a ReflectionException was thrown.
ReflectionProperty::setAccessibleCalling this method has no effect; all properties are accessible by default.
ReflectionProperty::setValuePrivate and protected properties can be accessed by ReflectionProperty::setValue right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible; otherwise a ReflectionException was thrown.
ReflectionZendExtension::__cloneThis method is no longer final.
SimpleXMLElement::currentAn Error is now thrown if SimpleXMLElement::current is called on an invalid iterator. Previously, null was returned.
SimpleXMLElement::keyAn Error is now thrown if SimpleXMLElement::key is called on an invalid iterator. Previously, false was returned.
SNMP::setSecurityThe authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library.
SplFileObject::fputcsvThe optional eol parameter has been added.
SplObjectStorage::currentSplObjectStorage::current now throws an Error exception if the current position is invalid. Previously, false was returned instead.
SQLite3Result::finalizeThis method now throws an Error exception if the object is not correct initialized. Previously, it returned false.
SQLite3Stmt::closeThis method now throws an Error exception if the object is not correct initialized. Previously, it returned false.
8.0.21DateTime::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
DateTimeImmutable::createFromFormatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
date_parse_from_formatNow throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored.
8.0.5imageinterlaceimageinterlace returns a bool now; previously it returned an int (non-zero for interlaced images, zero otherwise).
8.0.3DOMDocument::getElementsByTagNameNSnamespace is nullable now.
DOMElement::getElementsByTagNameNSnamespace is nullable now.
DOMImplementation::createDocumentnamespace is now nullable.
finfo::__constructmagic_database is nullable now.
bind_textdomain_codesetcodeset is nullable now. Previously, it was not possible to retrieve the currently set encoding.
bindtextdomaindirectory is nullable now. Previously, it was not possible to retrieve the currently set directory.
finfo_openmagic_database is nullable now.
imagegdfile is now nullable.
imagegd2file is now nullable.
SoapClient::__setLocationlocation is nullable now.
SoapVar::__constructtypeName, typeNamespace, nodeName,and nodeNamespace are nullable now.
8.0.0CURLFile::__constructmime_type and posted_filename are nullable now; previously their default was 0.
DateInterval::__constructW can be combined with D.
DateTime::createFromImmutableThe method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTime.
DateTimeInterface::formatThe format character p has been added.
DateTimeInterface::getTimestampThese functions no longer return false on failure.
DateTimeImmutable::createFromMutableThe method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTimeImmutable.
DateTimeZone::listIdentifiersPrior to this version, false was returned on failure.
Directory::closeNo parameter is accepted. Previously, a directory handle could be passed as argument.
Directory::readNo parameter is accepted. Previously, a directory handle could be passed as argument.
Directory::rewindNo parameter is accepted. Previously, a directory handle could be passed as argument.
DirectoryIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
DOMDocument::loadCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMDocument::loadHTMLCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMDocument::loadHTMLFileCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMDocument::loadXMLCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMImplementation::createDocumentdoctype is now nullable.
DOMImplementation::createDocumentCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMImplementation::createDocumentTypeCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
DOMImplementation::hasFeatureCalling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised.
FFI::cdeflib is nullable now.
FFI::stringsize is nullable now; previously, its default was 0.
FilesystemIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
absnum no longer accepts internal objects which support numeric conversion.
apache_notenote_value is nullable now.
array_chunkIf length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned null.
array_columnObjects in columns indicated by index_key parameter will no longer be cast to string and will now throw a TypeError instead.
array_combinearray_combine will now throw a ValueError if the number of elements for each array is not equal; previously this function returned false instead.
array_diffThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_diff_assocThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_diff_keyThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_fillarray_fill now throws a ValueError if count is out of range; previously E_WARNING was raised, and the function returned false.
array_filtercallback is nullable now.
array_filterIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
array_intersectThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_intersect_assocThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_intersect_keyThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_key_existsThe key parameter now accepts bool, float, int, null, resource, and string as arguments.
array_key_existsPassing an object to the array parameter is no longer supported.
array_mapIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
array_randarray_rand now throws a ValueError if num is out of range; previously an E_WARNING was raised, and the function returned null.
array_randarray_rand now throws a ValueError if array is empty; previously an E_WARNING was raised, and the function returned null.
array_reduceIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
array_splicelength is nullable now.
array_walkIf callback expects the second or third parameter to be passed by reference, this function will now emit an E_WARNING.
assertassert will no longer evaluate string arguments, instead they will be treated like any other argument. assert($a == $b) should be used instead of assert('$a == $b'). The assert.quiet_eval php.ini directive and the ASSERT_QUIET_EVAL constant have also been removed, as they would no longer have any effect.
assertIf description is an instance of Throwable, the object is thrown if the assertion fails, regardless of the value of assert.exception.
assertIf description is an instance of Throwable, no user callback is called even if it set.
assertDeclaring a function called assert() inside a namespace is no longer allowed, and issues E_COMPILE_ERROR.
assert_optionsIf option is not a valid option, a ValueError is now thrown. Previously false was returned.
bcaddscale is now nullable.
bccompscale is now nullable.
bcdivscale is now nullable.
bcdivDividing by 0 now throws a DivisionByZeroError exception instead of returning null.
bcmodscale is now nullable.
bcmodDividing by 0 now throws a DivisionByZeroError exception instead of returning null.
bcmulscale is now nullable.
bcpowWhen exponent has a fractional part, it now throws a ValueError instead of truncating.
bcpowmodscale is now nullable.
bcpowmodNow throws a ValueError instead of returning false if exponent is a negative value.
bcpowmodDividing by 0 now throws a DivisionByZeroError exception instead of returning false.
bcscalescale is now nullable.
bcsqrtIf num is not a well-formed BCMath numeric string, or less than 0, a ValueError is thrown. Previously, E_WARNING was raised instead.
bcsqrtscale now needs to be between 0 and 2147483647; previously, negative scales have been silently treated as 0.
bcsqrtscale is now nullable.
bcsubscale is now nullable.
bzdecompressThe type of use_less_memory has been changed from int to bool. Previously, the default value was 0.
bzwritelength is nullable now.
call_user_func_arrayargs keys will now be interpreted as parameter names, instead of being silently ignored.
ceilnum no longer accepts internal objects which support numeric conversion.
closedirdir_handle is now nullable.
com_event_sinksink_interface is nullable now.
com_get_active_objectcodepage is nullable now.
compactIf a given string references an unset variable, an E_WARNING level error is now issued.
constantIf the constant is not defined, constant now throws an Error exception; previously an E_WARNING was generated, and null was returned.
convert_cyr_stringRemoved this function.
convert_uuencodePrior to this version, trying to convert an empty string returned false for no particular reason.
countcount will now throw TypeError on invalid countable types passed to the value parameter.
count_charsPrior to this version, the function returned false on failure.
cryptThe salt is no longer optional.
curl_closeThis function is a NOP now.
curl_closehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_copy_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_copy_handleOn success, this function returns a CurlHandle instance now; previously, a resource was returned.
curl_errnohandle expects a CurlHandle instance now; previously, a resource was expected.
curl_errorhandle expects a CurlHandle instance now; previously, a resource was expected.
curl_escapehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_exechandle expects a CurlHandle instance now; previously, a resource was expected.
curl_getinfohandle expects a CurlHandle instance now; previously, a resource was expected.
curl_getinfooption is nullable now; previously, the default was 0.
curl_initOn success, this function returns a CurlHandle instance now; previously, a resource was returned.
curl_initurl is nullable now.
curl_multi_add_handlemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_add_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_multi_closemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_errnoThe function no longer returns false on failure.
curl_multi_errnomulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_execmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_getcontenthandle expects a CurlHandle instance now; previously, a resource was expected.
curl_multi_info_readmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_initOn success, this function returns a CurlMultiHandle instance now; previously, a resource was returned.
curl_multi_remove_handlemulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_remove_handlehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_multi_selectmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_setoptmulti_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_pausehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_resethandle expects a CurlHandle instance now; previously, a resource was expected.
curl_setoptcurl_setopt now throws a ValueError if option is not a valid cURL option. Previously, unknown options were silently ignored, and an E_WARNING was emitted, with false returned, only for values less than or equal to zero.
curl_setopthandle expects a CurlHandle instance now; previously, a resource was expected.
curl_setopt_arraycurl_setopt_array now throws a ValueError if options contains an unknown option or a string key. Previously, unknown options were silently ignored, and a string key emitted an E_WARNING and returned false.
curl_setopt_arrayhandle expects a CurlHandle instance now; previously, a resource was expected.
curl_share_closeThis function is a NOP now.
curl_share_closeshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_share_errnoThe function no longer returns false on failure.
curl_share_errnoshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_share_initThis function returns a CurlShareHandle instance now; previously, a resource was returned.
curl_share_setoptshare_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_unescapehandle expects a CurlHandle instance now; previously, a resource was expected.
curl_versionThe optional age parameter has been removed.
datetimestamp is nullable now.
date_sunriselatitude, longitude, zenith and utcOffset are nullable now.
date_sunsetlatitude, longitude, zenith and utcOffset are nullable now.
definePassing true to case_insensitive now emits an E_WARNING. Passing false is still allowed.
deflate_addcontext expects a DeflateContext instance now; previously, a resource was expected.
deflate_initOn success, this function returns a DeflateContext instance now; previously, a resource was returned.
dircontext is now nullable.
dom_import_simplexmlThis function no longer returns null on failure.
easter_dateyear is nullable now.
easter_dateA ValueError is now thrown when year is outside the allowed range. Previously, an E_WARNING was raised and the function returned false.
easter_daysyear is nullable now.
enchant_broker_describebroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_describePrior to this version, the function returned false on failure.
enchant_broker_dict_existsbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_freeThis function has been deprecated in favor of unsetting the object.
enchant_broker_freebroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_free_dictThis function has been deprecated in favor of unsetting the object.
enchant_broker_free_dictdictionary expects a EnchantDictionary now; previously, a resource was expected.
enchant_broker_get_dict_pathThis function has been deprecated.
enchant_broker_get_dict_pathbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_get_errorbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_initOn success, this function returns an EnchantBroker instance now; previously, a resource was returned.
enchant_broker_list_dictsbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_list_dictsPrior to this version, the function returned false on failure.
enchant_broker_request_dictbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_request_dictOn success, this function returns an EnchantDictionary instance now; previously, a resource was returned.
enchant_broker_request_pwl_dictbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_request_pwl_dictOn success, this function returns an EnchantDictionary instance now; previously, a resource was returned.
enchant_broker_set_dict_pathThis function has been deprecated.
enchant_broker_set_dict_pathbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_broker_set_orderingbroker expects an EnchantBroker instance now; previously, a resource was expected.
enchant_dict_adddictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_add_to_sessiondictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_checkdictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_describedictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_describePrior to this version, the function returned false on failure.
enchant_dict_get_errordictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_is_addeddictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_quick_checkdictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_store_replacementdictionary expects an EnchantDictionary instance now; previously, a resource was expected.
enchant_dict_suggestdictionary expects an EnchantDictionary instance now; previously, a resource was expected.
error_logdestination and additional_headers are now nullable.
error_reportingerror_level is nullable now.
execIf command is empty or contains null bytes, exec now throws a ValueError. Previously it emitted an E_WARNING and returned false.
exif_read_datarequired_sections is nullable now.
explodeexplode will now throw ValueError when separator parameter is given an empty string (""). Previously, explode returned false instead.
ezmlm_hashRemoved this function.
fgetcsvlength is now nullable.
file_get_contentslength is nullable now.
finfo_buffercontext is nullable now.
finfo_filecontext is nullable now.
floatvalThe error level when converting from object was changed from E_NOTICE to E_WARNING.
floornum no longer accepts internal objects which support numeric conversion.
fprintfThis function no longer returns false on failure.
fprintfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
fprintfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
fprintfThrows a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
fprintfThrows an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
fsockopentimeout is nullable now.
fwritelength is nullable now.
get_called_classCalling this function from outside a class, will now throw an Error. Previously, an E_WARNING was raised and the function returned false.
get_classCalling this function from outside a class, without any arguments, will now throw an Error. Previously, an E_WARNING was raised and the function returned false.
get_class_methodsThe object_or_class parameter now only accepts objects or valid class names.
get_defined_functionsThe default value of the exclude_disabled parameter has been changed from false to true. However, it will not have any effect as disabled functions are removed from the function table at compile time.
get_headersThe associative has been changed from int to bool.
get_magic_quotes_gpcRemoved this function.
get_magic_quotes_runtimeRemoved this function.
get_parent_classThe object_or_class parameter now only accepts objects or valid class names.
get_resourcestype is nullable now.
getdatetimestamp is nullable now.
getenvThe name is now nullable.
getimagesizeA ValueError is now thrown if filename is empty; previously an E_WARNING was raised and the function returned false.
gmdatetimestamp is nullable now.
gmmktimehour is no longer optional. If you need a Unix timestamp, use time.
gmmktimeminute, second, month, day and year are nullable now.
gmp_binomialThis function no longer returns false on failure.
gmp_exportThis function no longer returns false on failure.
gmp_importThis function no longer returns false on failure.
gmp_random_seedIf seed is invalid, gmp_random_seed now throws a ValueError. Previously it emitted an E_WARNING and returned false.
gmstrftimetimestamp is nullable now.
grapheme_substrThe function now consistently clamps out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases.
gzgetslength is nullable now; previously, the default was 1024.
gzwritelength is nullable now; previously, the default was 0.
hashNow throws a ValueError exception if algo is unknown; previously, false was returned and an E_WARNING message was emitted.
hash_hkdfNow throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.
hash_hmacNow throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned and an E_WARNING message was emitted.
hash_hmac_fileNow throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned and an E_WARNING message was emitted.
hash_initNow throws an ValueError exception if the algo is unknown or is a non-cryptographic hash function, or if key is empty. Previously, false was returned and an E_WARNING message was emitted.
hash_pbkdf2Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.
hash_update_filestream_context is now nullable.
header_removename is nullable now.
hebrevcRemoved this function.
html_entity_decodeencoding is nullable now.
htmlentitiesencoding is nullable now.
http_build_queryarg_separator is now nullable.
iconv_mime_decodeencoding is nullable now.
iconv_mime_decode_headersencoding is nullable now.
iconv_strlenencoding is nullable now.
iconv_strposencoding is nullable now.
iconv_strrposencoding is nullable now.
iconv_substrlength and encoding are nullable now.
idatetimestamp is nullable now.
ignore_user_abortenable is nullable now.
imageaffineclip is now nullable.
imageaffineOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagealphablendingimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageantialiasimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagearcimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagebmpimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagebmpThe type of compressed is bool now; formerly it was int.
imagecharimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecharupimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorallocateimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorallocatealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecoloratimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorclosestimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorclosesthwbimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolordeallocateimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorexactimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorexactalphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolormatchimage1 and image2 expect GdImage instances now; previously, resources were expected.
imagecolorresolveimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorresolvealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorsetimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorsforindeximage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolorsforindeximagecolorsforindex now throws a ValueError exception if color is out of range; previously, false was returned instead.
imagecolorstotalimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolortransparentimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecolortransparentcolor is now nullable.
imageconvolutionimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecopydst_image and src_image expect GdImage instances now; previously, resources were expected.
imagecopymergedst_image and src_image expect GdImage instances now; previously, resources were expected.
imagecopymergegraydst_image and src_image expect GdImage instances now; previously, resources were expected.
imagecopyresampleddst_image and src_image expect GdImage instances now; previously, resources were expected.
imagecopyresizeddst_image and src_image expect GdImage instances now; previously, resources were expected.
imagecreateOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefrombmpOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromgdOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromgd2On success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromgd2partOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromgifOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromjpegOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefrompngOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromstringOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromtgaOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromwbmpOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromwebpOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromxbmOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatefromxpmOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecreatetruecolorOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecropimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecropOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagecropautoimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagecropautoOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagedashedlineimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagedestroyThis function is a NOP now.
imagedestroyimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageellipseimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefillimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilledarcimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilledellipseimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilledpolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilledrectangleimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilltoborderimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefilterimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageflipimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagefttextimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegammacorrectimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegdimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegd2image expects a GdImage instance now; previously, a valid gd resource was expected.
imagegetclipimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegetinterpolationimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegifimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagegrabscreenOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagegrabwindowOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagegrabwindowclient_area expects a bool now; previously it expected an int.
imageinterlaceimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageinterlaceenable expects a bool now; previously it expected an int.
imageistruecolorimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagejpegimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagelayereffectimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagelineimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageopenpolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagepalettecopydst and src expect GdImage instances now; previously, resources were expected.
imagepalettetotruecolorimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagepngimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagepolygonimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagerectangleimage expects a GdImage instance now; previously, a valid gd resource was expected.
imageresolutionresolution_x and resolution_y are now nullable.
imagerotateOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagerotateimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagerotateThe unused ignore_transparent expects a bool now; previously it expected an int.
imagesavealphaimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagescaleOn success, this function returns a GDImage instance now; previously, a resource was returned.
imagescaleimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesetbrushimage and brush expect GdImage instances now; previously, resources were expected.
imagesetclipimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesetinterpolationimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesetpixelimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesetthicknessimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesettileimage and tile expect GdImage instances now; previously, resources were expected.
imagestringimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagestringupimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesximage expects a GdImage instance now; previously, a valid gd resource was expected.
imagesyimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagetruecolortopaletteimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagettfbboxThe options has been added.
imagettftextThe options has been added.
imagewbmpimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagewbmpforeground_color is nullable now.
imagewebpimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagexbmimage expects a GdImage instance now; previously, a valid gd resource was expected.
imagexbmforeground_color is now nullable.
imagexbmThe fourth parameter, which was unused, has been removed.
implodePassing the separator after the array is no longer supported.
inflate_addcontext expects an InflateContext instance now; previously, a resource was expected.
inflate_get_read_lencontext expects an InflateContext instance now; previously, a resource was expected.
inflate_get_statuscontext expects an InflateContext instance now; previously, a resource was expected.
inflate_initOn success, this function returns an InflateContext instance now; previously, a resource was returned.
intvalThe error level when converting from object was changed from E_NOTICE to E_WARNING.
is_numericNumeric strings ending with whitespace ("42 ") will now return true. Previously, false was returned instead.
jdtounixThis function no longer returns false on failure, but raises a ValueError instead.
ldap_addcontrols is nullable now; previously, it defaulted to [].
ldap_add_extcontrols is nullable now; previously, it defaulted to [].
ldap_bind_extcontrols is nullable now; previously, it defaulted to [].
ldap_comparecontrols is nullable now; previously, it defaulted to [].
ldap_control_paged_resultThis function has been removed.
ldap_control_paged_result_responseThis function has been removed.
ldap_deletecontrols is nullable now; previously, it defaulted to [].
ldap_delete_extcontrols is nullable now; previously, it defaulted to [].
ldap_exop_passwdcontrols is nullable now; previously, it defaulted to [].
ldap_first_attributeThe unused third parameter ber_identifier is no longer accepted.
ldap_listcontrols is nullable now; previously, it defaulted to [].
ldap_mod_addcontrols is nullable now; previously, it defaulted to [].
ldap_mod_delcontrols is nullable now; previously, it defaulted to [].
ldap_mod_replacecontrols is nullable now; previously, it defaulted to [].
ldap_modify_batchcontrols is nullable now; previously, it defaulted to [].
ldap_mod_add_extcontrols is nullable now; previously, it defaulted to [].
ldap_mod_del_extcontrols is nullable now; previously, it defaulted to [].
ldap_mod_replace_extcontrols is nullable now; previously, it defaulted to [].
ldap_next_attributeThe unused third parameter ber_identifier is no longer accepted.
ldap_readcontrols is nullable now; previously, it defaulted to [].
ldap_renamecontrols is nullable now; previously, it defaulted to [].
ldap_rename_extcontrols is nullable now; previously, it defaulted to [].
ldap_sasl_binddn, password, mech, realm, authc_id, authz_id and props are nullable now.
ldap_searchcontrols is nullable now; previously, it defaulted to [].
ldap_set_rebind_proccallback is nullable now.
ldap_sortThis function has been removed.
levenshteinPrior to this version, levenshtein had to be called with either two or five arguments.
levenshteinPrior to this version, levenshtein would return -1 if one of the argument strings is longer than 255 characters.
libxml_disable_entity_loaderThis function has been deprecated.
libxml_use_internal_errorsuse_errors is nullable now. Previously, its default was false.
localtimetimestamp is nullable now.
mailAll headers, including those in the additional_headers parameter, are now separated by CRLF (\r\n), as required by RFC 5322, rather than a possible mixture of CRLF and bare LF (\n).
maxmax throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted.
maxAs string to number comparisons were changed, max no longer returns a different value based on the argument order in those cases.
mb_check_encodingvalue and encoding are nullable now.
mb_chrencoding is nullable now.
mb_convert_encodingmb_convert_encoding will now throw a ValueError when to_encoding is passed an invalid encoding.
mb_convert_encodingmb_convert_encoding will now throw a ValueError when from_encoding is passed an invalid encoding.
mb_convert_encodingfrom_encoding is nullable now.
mb_convert_kanaencoding is nullable now.
mb_decode_numericentityencoding is nullable now.
mb_detect_orderencoding is nullable now.
mb_encode_mimeheadercharset and transfer_encoding are nullable now.
mb_encode_numericentityencoding is nullable now.
mb_encoding_aliasesNow throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned.
mb_eregThis function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
mb_ereg_matchoptions is nullable now.
mb_ereg_replaceoptions is nullable now.
mb_ereg_replace_callbackoptions is nullable now.
mb_ereg_searchpattern and options are nullable now.
mb_ereg_search_initpattern and options are nullable now.
mb_ereg_search_pospattern and options are nullable now.
mb_ereg_search_regspattern and options are nullable now.
mb_eregiThis function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
mb_eregi_replaceoptions is nullable now.
mb_get_infoThe types "func_overload" and "func_overload_list" are no longer supported.
mb_http_inputmb_http_input now throws a ValueError if type is invalid. type is nullable now.
mb_http_outputencoding is nullable now.
mb_internal_encodingencoding is nullable now.
mb_internal_encodingNow throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned.
mb_languagelanguage is nullable now.
mb_ordencoding is nullable now.
mb_parse_strThe second parameter was no longer optional.
mb_regex_encodingencoding is nullable now.
mb_regex_set_optionsIf the parameter options is given and not null, the previous options are returned. Formerly, the current options have been returned.
mb_regex_set_optionsoptions is nullable now.
mb_regex_set_optionsThe "e" option now throws a ValueError.
mb_scrubencoding is nullable now.
mb_send_mailadditional_params is nullable now.
mb_str_splitencoding is nullable now.
mb_str_splitThis function no longer returns false on failure.
mb_strcutencoding is nullable now.
mb_strimwidthencoding is nullable now.
mb_striposneedle now accepts an empty string.
mb_striposencoding is nullable now.
mb_stristrneedle now accepts an empty string.
mb_stristrencoding is nullable now.
mb_strlenencoding is nullable now.
mb_strlenNow throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned.
mb_strposneedle now accepts an empty string.
mb_strposencoding is nullable now.
mb_strrchrneedle now accepts an empty string.
mb_strrchrencoding is nullable now.
mb_strrichrneedle now accepts an empty string.
mb_strrichrencoding is nullable now.
mb_strriposneedle now accepts an empty string.
mb_strriposencoding is nullable now.
mb_strrposneedle now accepts an empty string.
mb_strrposPassing the encoding as the third argument instead of an offset has been removed.
mb_strrposencoding is nullable now.
mb_strstrneedle now accepts an empty string.
mb_strstrencoding is nullable now.
mb_strwidthencoding is nullable now.
mb_substitute_characterPassing an empty string to substitute_character is no longer supported; "none" should be passed instead.
mb_substitute_characterencoding is nullable now.
mb_substrencoding is nullable now.
mb_substr_countencoding is nullable now.
metaphoneThe function returned false on failure.
mhashkey is now nullable.
minmin throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted.
minAs string to number comparisons were changed, min no longer returns a different value based on the argument order in those cases.
mktimehour is no longer optional. If you need a Unix timestamp, use time.
mktimeminute, second, month, day and year are nullable now.
money_formatRemoved this function.
msg_get_queueOn success, this function returns a SysvMessageQueue instance now; previously, a resource was returned.
msg_receivequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
msg_remove_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
msg_sendqueue expects a SysvMessageQueue instance now; previously, a resource was expected.
msg_set_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
msg_stat_queuequeue expects a SysvMessageQueue instance now; previously, a resource was expected.
mt_randA ValueError will be thrown if max is less than min; previously an E_WARNING was raised, and the function returned false.
number_formatPrior to this version, number_format accepted one, two, or four parameters (but not three).
ob_implicit_flushThe enable expects a bool value now; previously, an int was expected.
odbc_columnsschema, table and column are now nullable.
odbc_errorodbc is now nullable.
odbc_errormsgodbc is now nullable.
odbc_execflags was removed.
odbc_executeThe unused flags parameter was removed.
odbc_fetch_rowrow is now nullable.
odbc_procedurecolumnsPrior to this version, the function could only be called with either one or five arguments.
odbc_proceduresPrior to this version, the function could only be called with either one or four arguments.
odbc_tablesschema, table and types are now nullable.
opendircontext is now nullable.
openssl_csr_exportcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_csr_export_to_filecsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_csr_get_public_keyOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
openssl_csr_get_public_keycsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_csr_get_subjectcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_csr_newOn success, this function returns an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was returned.
openssl_csr_newprivate_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.
openssl_csr_signOn success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
openssl_csr_signcsr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_csr_signca_certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_csr_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_dh_compute_keyprivate_key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
openssl_free_keyThis function is now deprecated as it doesn't have an effect anymore.
openssl_free_keykey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
openssl_openprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
openssl_opencipher_algo is no longer an optional parameter.
openssl_pkcs7_decryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
openssl_pkcs7_encryptcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_pkcs7_signcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_pkcs7_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
openssl_pkcs7_verifysigners_certificates_filename, untrusted_certificates_filename, content and output_filename are nullable now.
openssl_pkcs12_exportcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_pkcs12_exportprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkcs12_export_to_filecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
openssl_pkcs12_export_to_fileprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkey_exportkey accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkey_export_to_filekey accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkey_freeThis function is now deprecated as it doesn't have an effect anymore.
openssl_pkey_freekey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
openssl_pkey_get_detailskey accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.
openssl_pkey_get_privateOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
openssl_pkey_get_privateprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkey_get_privatepassphrase is nullable now.
openssl_pkey_get_publicOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
openssl_pkey_get_publicpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_pkey_newOn success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
openssl_private_decryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_private_encryptprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_public_decryptpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_public_encryptpublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_random_pseudo_bytesstrong_result is nullable now.
openssl_sealpublic_key accepts an array of OpenSSLAsymmetricKey instances now; previously, an array of resources of type OpenSSL key was accepted.
openssl_sealcipher_algo is no longer an optional parameter.
openssl_sealiv is nullable now.
openssl_signprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_spki_newprivate_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.
openssl_verifypublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_x509_check_private_keycertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_check_private_keyprivate_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_x509_checkpurposecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_checkpurposeuntrusted_certificates_file is nullable now.
openssl_x509_exportcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_export_to_filecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_fingerprintcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_freeThis function is now deprecated as it doesn't have an effect anymore.
openssl_x509_freecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_parsecertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_readOn success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
openssl_x509_readcertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_verifycertificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
openssl_x509_verifypublic_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
packThis function no longer returns false on failure.
parse_strresult is no longer optional.
parse_urlparse_url will now distinguish absent and empty queries and fragments.
passthruIf command is empty or contains null bytes, passthru now throws a ValueError. Previously it emitted an E_WARNING and returned false.
password_hashpassword_hash no longer returns false on failure, instead a ValueError will be thrown if the password hashing algorithm is not valid, or an Error if the password hashing failed for an unknown error.
password_hashThe algo parameter is nullable now.
pcntl_async_signalsenable is nullable now.
pcntl_getpriorityprocess_id is nullable now.
pcntl_setpriorityprocess_id is nullable now.
pfsockopentimeout is nullable now.
pg_client_encodingconnection is now nullable.
pg_closeconnection is now nullable.
pg_dbnameconnection is now nullable.
pg_end_copyconnection is now nullable.
pg_fetch_allpg_fetch_all will now return an empty array instead of false for result sets with zero rows.
pg_hostconnection is now nullable.
pg_last_errorconnection is now nullable.
pg_lo_writelength is now nullable.
pg_optionsconnection is now nullable.
pg_pingconnection is now nullable.
pg_portconnection is now nullable.
pg_traceconnection is now nullable.
pg_ttyconnection is now nullable.
pg_untraceconnection is now nullable.
pg_versionconnection is now nullable.
phpversionextension is nullable now.
printfThis function no longer returns false on failure.
printfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
printfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
printfThrows a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
printfThrows an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
quotemetaReturns an empty string, instead of false, when string is empty.
readdirdir_handle is now nullable.
readline_infovar_name and value are nullable now.
readline_read_historyfilename is nullable now.
readline_write_historyfilename is nullable now.
restore_include_pathRemoved this function.
rewinddirdir_handle is now nullable.
roundnum no longer accepts internal objects which support numeric conversion.
sapi_windows_vt100_supportenable is now nullable.
scandircontext is now nullable.
sem_acquiresemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
sem_getOn success, this function returns a SysvSemaphore instance now; previously, a resource was returned.
sem_getThe type of auto_release has been changed from int to bool.
sem_releasesemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
sem_removesemaphore expects a SysvSemaphore instance now; previously, a resource was expected.
session_cache_expirevalue is nullable now.
session_cache_limitervalue is nullable now.
session_idid is nullable now.
session_module_namemodule is nullable now.
session_namename is nullable now.
session_save_pathpath is nullable now.
session_set_cookie_paramspath, domain, secure and httponly are nullable now.
set_error_handlererrcontext was removed, and will no longer be passed to user callbacks.
setcookiePassing unsupported keys now throws a ValueError instead of emitting an E_WARNING.
settypeNow throws a ValueError when an invalid type is passed to type. Previously, a E_WARNING was emitted and the function returned false.
shm_attachOn success, this function returns an SysvSharedMemory instance now; previously, a resource was returned.
shm_attachsize is nullable now.
shm_detachshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_get_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_has_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_put_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_removeshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_remove_varshm expects a SysvSharedMemory instance now; previously, a resource was expected.
shmop_closeThis function has been deprecated, as this function has no effect anymore.
shmop_closeshmop expects a Shmop instance now; previously, a resource was expected.
shmop_deleteshmop expects a Shmop instance now; previously, a resource was expected.
shmop_openOn success, this function returns an Shmop instance now; previously, a resource was returned.
shmop_openIf mode is invalid, or size is less than or equal to zero, a ValueError is thrown; previously E_WARNING was emitted instead, and the function returned false.
shmop_readshmop expects a Shmop instance now; previously, a resource was expected.
shmop_readIf offset or size are out of range, a ValueError is thrown; previously E_WARNING was emitted, and false was returned,
shmop_sizeshmop expects a Shmop instance now; previously, a resource was expected.
shmop_writePrior to PHP 8.0.0, false was returned on failure.
shmop_writeshmop expects a Shmop instance now; previously, a resource was expected.
sleepThe function throws a ValueError on negative seconds; previously, an E_WARNING was raised instead, and the function returned false.
socket_acceptOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_addrinfo_bindOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_addrinfo_bindaddress is an AddressInfo instance now; previously, it was a resource.
socket_addrinfo_connectOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_addrinfo_connectaddress is an AddressInfo instance now; previously, it was a resource.
socket_addrinfo_explainaddress is an AddressInfo instance now; previously, it was a resource.
socket_addrinfo_lookupOn success, this function returns an array of AddressInfo instances now; previously, an array of resources was returned.
socket_addrinfo_lookupservice is nullable now.
socket_bindsocket is a Socket instance now; previously, it was a resource.
socket_clear_errorsocket is a Socket instance now; previously, it was a resource.
socket_clear_errorsocket is nullable now.
socket_closesocket is a Socket instance now; previously, it was a resource.
socket_connectsocket is a Socket instance now; previously, it was a resource.
socket_connectport is nullable now.
socket_createOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_create_listenOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_create_pairpair is a reference to an array of Socket instances now; previously, it was a reference to an array of resources.
socket_export_streamsocket is a Socket instance now; previously, it was a resource.
socket_get_optionsocket is a Socket instance now; previously, it was a resource.
socket_getpeernamesocket is a Socket instance now; previously, it was a resource.
socket_getsocknamesocket is a Socket instance now; previously, it was a resource.
socket_import_streamOn success, this function returns a Socket instance now; previously, a resource was returned.
socket_last_errorsocket is a Socket instance now; previously, it was a resource.
socket_last_errorsocket is nullable now.
socket_listensocket is a Socket instance now; previously, it was a resource.
socket_readsocket is a Socket instance now; previously, it was a resource.
socket_recvsocket is a Socket instance now; previously, it was a resource.
socket_recvfromsocket is a Socket instance now; previously, it was a resource.
socket_recvmsgsocket is a Socket instance now; previously, it was a resource.
socket_sendsocket is a Socket instance now; previously, it was a resource.
socket_sendmsgsocket is a Socket instance now; previously, it was a resource.
socket_sendtosocket is a Socket instance now; previously, it was a resource.
socket_sendtoport is nullable now.
socket_set_blocksocket is a Socket instance now; previously, it was a resource.
socket_set_nonblocksocket is a Socket instance now; previously, it was a resource.
socket_set_optionsocket is a Socket instance now; previously, it was a resource.
socket_shutdownsocket is a Socket instance now; previously, it was a resource.
socket_writesocket is a Socket instance now; previously, it was a resource.
socket_writelength is nullable now.
socket_wsaprotocol_info_exportsocket is a Socket instance now; previously, it was a resource.
socket_wsaprotocol_info_importOn success, this function returns a Socket instance now; previously, a resource was returned.
soundexPrior to this version, calling the function with an empty string returned false for no particular reason.
spl_autoloadfile_extensions is now nullable.
spl_autoload_extensionsfile_extensions is now nullable.
spl_autoload_functionsReturn value was updated to always be an array; previously this function returned false if the autoload queue wasn't activated.
spl_autoload_registercallback is now nullable.
sprintfThis function no longer returns false on failure.
sprintfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
sprintfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
sprintfThrows a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
sprintfThrows an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
str_splitIf length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned false.
str_word_countcharacters is nullable now.
strcspnlength is nullable now.
stream_context_createoptions and params are now nullable.
stream_context_get_defaultoptions is now nullable.
stream_copy_to_streamlength is now nullable.
stream_get_contentslength is now nullable.
stream_set_chunk_sizeA ValueError is now thrown if size is less than 1 or greater than PHP_INT_MAX. Previously, an E_WARNING level error was emitted and false was returned.
stream_socket_accepttimeout is now nullable.
stream_socket_clienttimeout and context are now nullable.
stream_socket_enable_cryptosession_stream is now nullable.
stream_socket_servercontext is nullable now.
strftimetimestamp is nullable now.
strip_tagsallowed_tags is nullable now.
striposneedle now accepts an empty string.
striposPassing an int as needle is no longer supported.
stristrneedle now accepts an empty string.
stristrPassing an int as needle is no longer supported.
strposneedle now accepts an empty string.
strposPassing an int as needle is no longer supported.
strrchrneedle now accepts an empty string.
strrchrPassing an int as needle is no longer supported.
strriposneedle now accepts an empty string.
strriposPassing an int as needle is no longer supported.
strrposneedle now accepts an empty string.
strrposPassing an int as needle is no longer supported.
strspnlength is nullable now.
strstrneedle now accepts an empty string.
strstrPassing an int as needle is no longer supported.
strtotimebaseTimestamp is nullable now.
substrlength is nullable now. When length is explicitly set to null, the function returns a substring finishing at the end of the string, when it previously returned an empty string.
substrThe function returns an empty string where it previously returned false.
substr_comparelength is nullable now.
substr_countlength is nullable now.
substr_replacelength is nullable now.
touchmtime and atime are now nullable.
trigger_errorThe function now throws a ValueError if an invalid error_level is specified. Previously, it returned false.
uasortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
uksortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
umaskmask is nullable now.
unixtojdtimestamp is nullable now.
usortIf callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.
vfprintfThis function no longer returns false on failure.
vfprintfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
vfprintfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vfprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vfprintfThrows a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
vprintfThis function no longer returns false on failure.
vprintfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
vprintfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vprintfThrows a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
vsprintfThis function no longer returns false on failure.
vsprintfThrows a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead.
vsprintfThrows a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vsprintfThrow a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead.
vsprintfThrows a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead.
wordwrapIf break is empty string, a ValueError is thrown; previously in this case it emitted an E_WARNING and returned false.
xml_get_current_byte_indexparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_get_current_column_numberparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_get_current_line_numberparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_get_error_codeparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parseparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parse_into_structparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parser_createThis function returns an XMLParser instance now; previously, a resource was returned, or false on failure.
xml_parser_createencoding is nullable now.
xml_parser_create_nsThis function returns an XMLParser instance now; previously, a resource was returned, or false on failure.
xml_parser_create_nsencoding is nullable now.
xml_parser_freeparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parser_get_optionparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parser_get_optionA ValueError is now thrown if option is invalid.
xml_parser_set_optionparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_parser_set_optionA ValueError is now thrown if option is invalid.
xml_set_character_data_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_default_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_element_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_end_namespace_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_external_entity_ref_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_notation_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_objectparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_processing_instruction_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_start_namespace_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
xml_set_unparsed_entity_decl_handlerparser expects an XMLParser instance now; previously, a valid xml resource was expected.
zip_closeThis function is deprecated in favor of the Object API, see ZipArchive::close.
zip_entry_closeThis function is deprecated in favor of the Object API.
zip_entry_compressedsizeThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
zip_entry_compressionmethodThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
zip_entry_filesizeThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
zip_entry_nameThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
zip_entry_openThis function is deprecated in favor of the Object API.
zip_entry_readThis function is deprecated in favor of the Object API, see ZipArchive::getFromIndex.
zip_openThis function is deprecated in favor of the Object API, see ZipArchive::open.
zip_readThis function is deprecated in favor of the Object API, see ZipArchive::statIndex.
GlobIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
IntlCalendar::setMinimalDaysInFirstWeekA ValueError is now thrown on invalid input. Previously, false was returned.
IntlTimeZone::getIDForWindowsIDregion is now nullable.
LimitIterator::__constructNow throws a ValueError if offset is less than 0; previously it threw a RuntimeException.
LimitIterator::__constructNow throws a ValueError if limit is less than -1; previously it threw a RuntimeException.
Locale::getDisplayLanguagedisplayLocale is nullable now.
Locale::getDisplayNamedisplayLocale is nullable now.
Locale::getDisplayRegiondisplayLocale is nullable now.
Locale::getDisplayScriptdisplayLocale is nullable now.
Locale::getDisplayVariantdisplayLocale is nullable now.
mysqli_result::fetch_objectconstructor_args now accepts [] for constructors with 0 parameters; previously an exception was thrown.
mysqli_result::field_seekThis function now always returns true. Previously it returned false on failure.
mysqli_stmt::closeThis function now always returns true. Previously it returned false on failure.
mysqli_stmt::__constructquery is now nullable.
mysqli::begin_transactionname is now nullable.
mysqli::closeThis function now always returns true. Previously it returned false on failure.
mysqli::commitname is now nullable.
mysqli::debugThis function now always returns true. Previously it returned false on failure.
mysqli::rollbackname is now nullable.
NumberFormatter::createpattern is nullable now.
PDOStatement::fetchAllThis method always returns an array now, while previously false may have been returned on failure.
Phar::addFilelocalName is now nullable.
Phar::buildFromIteratorbaseDirectory is now nullable.
Phar::compressextension is now nullable.
Phar::convertToDataformat, compression, and extension are now nullable.
Phar::convertToExecutableformat, compression, and extension are now nullable.
Phar::createDefaultStubindex and webIndex are now nullable.
Phar::decompressextension is now nullable.
Phar::getMetadataThe parameter unserializeOptions has been added.
Phar::setDefaultStubwebIndex is nullable now.
Phar::setSignatureAlgorithmprivateKey is now nullable.
Phar::webPharfileNotFoundScript and rewrite are nullable now.
PharData::addFilelocalName is now nullable.
PharData::buildFromIteratorbaseDirectory is now nullable.
PharData::compressextension is now nullable.
PharData::convertToDataformat, compression, and extension are now nullable.
PharData::convertToExecutableformat, compression, and localName are now nullable.
PharData::decompressextension is now nullable.
PharData::setDefaultStubwebIndex is nullable now.
PharData::setSignatureAlgorithmprivateKey is now nullable.
PharFileInfo::getMetadataThe parameter unserializeOptions has been added.
PharFileInfo::isCompressedcompression is now nullable.
RecursiveDirectoryIterator::__constructNow throws a ValueError if directory is an empty string; previously it threw a RuntimeException.
RecursiveIteratorIterator::getSubIteratorlevel is now nullable.
ReflectionClass::getConstantsfilter has been added.
ReflectionClass::getReflectionConstantsfilter has been added.
ReflectionClass::newInstanceArgsargs keys will now be interpreted as parameter names, instead of being silently ignored.
ReflectionClass::setStaticPropertyValueReflectionClass::setStaticPropertyValue can now set private and protected static properties. Previously, a ReflectionException was thrown.
ReflectionFunction::invokeArgsargs keys will now be interpreted as parameter names, instead of being silently ignored.
ReflectionFunction::isDisabledThis function has been deprecated, as ReflectionFunction can no longer be constructed for disabled functions.
ReflectionMethod::exportRemoved this function.
ReflectionMethod::getClosureobject is now nullable.
ReflectionMethod::invokeArgsargs keys will now be interpreted as parameter names, instead of being silently ignored.
ReflectionParameter::getClassThis function has been deprecated in favor of ReflectionParameter::getType instead.
ReflectionParameter::getDefaultValueThis method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
ReflectionParameter::getDefaultValueConstantNameThis method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
ReflectionParameter::isArrayThis function has been deprecated in favor of ReflectionParameter::getType instead.
ReflectionParameter::isCallableThis function has been deprecated in favor of ReflectionParameter::getType instead.
ReflectionProperty::getValueobject is nullable now.
ReflectionProperty::isInitializedobject is nullable now.
ReflectionType::__toStringReflectionType::__toString has been undeprecated.
Reflector::exportRemoved this function.
SimpleXMLElement::asXMLfilename is nullable now.
SoapClient::__doRequestThe type of oneWay is bool now; formerly it was int.
SoapClient::__setCookievalue is now nullable.
SoapServer::handlerequest is now nullable.
SplFileInfo::getFileInfoclass is now nullable.
SplFileInfo::getPathInfoclass is now nullable.
SplFileInfo::openFilecontext is now nullable.
SplFixedArray::__constructNow throws a ValueError if size is a negative; previously it threw a InvalidArgumentException.
tidy::__constructfilename, config, encoding and useIncludePath are nullable now.
tidy::parseFileconfig and encoding are nullable now.
tidy::parseStringconfig and encoding are nullable now.
tidy::repairFiletidy::repairFile is a static method now.
tidy::repairFileconfig and encoding are nullable now.
tidy::repairStringtidy::repairString is a static method now.
tidy::repairStringconfig and encoding are nullable now.
tidy::repairStringThis function no longer accepts the useIncludePath parameter.
XMLReader::getAttributeThis function can no longer return false.
XMLReader::getAttributeNsThis function can no longer return false.
XMLReader::lookupNamespaceThis function can no longer return false.
XMLReader::nextname is nullable now.
XMLReader::openXMLReader::open is now declared as static method, but can still be called on an XMLReader instance.
XMLReader::XMLXMLReader::XML is now declared as static method, but can still be called on an XMLReader instance.
XMLWriter::endAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endDocumentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::endPiwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::flushwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::flushThis function can no longer return false.
XMLWriter::fullEndElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::openMemoryThis function returns now an XMLWriter instance on success. Previously, a resource has been returned in this case.
XMLWriter::openUriThis function returns now an XMLWriter instance on success. Previously, a resource has been returned in this case.
XMLWriter::outputMemorywriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::setIndentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::setIndentStringwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startAttributeNswriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startAttributeNsprefix is nullable now.
XMLWriter::startCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startDocumentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startElementNswriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::startPiwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::textwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeAttributewriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeAttributeNswriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeCdatawriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeCommentwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeDtdwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeDtdAttlistwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeDtdElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeDtdEntitywriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeDtdEntitypublicId, systemId and notationData are nullable now.
XMLWriter::writeElementwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeElementNswriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writePiwriter expects an XMLWriter instance now; previously, a resource was expected.
XMLWriter::writeRawwriter expects an XMLWriter instance now; previously, a resource was expected.
ZipArchive::addEmptyDirflags was added.
ZipArchive::addFileflags was added.
ZipArchive::addFromStringflags was added.
ZipArchive::addGlob"flags" in options was added.
ZipArchive::addGlob"comp_method", "comp_flags", "enc_method" and "enc_password" in options were added.
ZipArchive::getStatusStringThis method can be called on closed archive.
ZipArchive::getStatusStringThis method no longer returns false on failure.
ZipArchive::setEncryptionIndexpassword is now nullable.
ZipArchive::setEncryptionNamepassword is now nullable.
7.4.12jdtounixThe upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture.
tidyNode::isHtmlThis function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.
7.4.9ReflectionClass::setStaticPropertyValueReflectionClass::setStaticPropertyValue can now set private and protected static properties. Previously, a ReflectionException was thrown.
7.4.4proc_openAdded the create_new_console option to the options parameter.
7.4.3curl_setoptIntroduced CURLOPT_HTTP09_ALLOWED.
7.4.2dba_openThe lmdb driver now supports an additional map_size parameter.
dba_popenThe lmdb driver now supports an additional map_size parameter.
7.4.0DatePeriod::__constructrecurrences must be greater than 0 now.
array_key_existsPassing an object to the array parameter has been deprecated. Use property_exists instead.
array_mergeThis function can now be called without any parameter. Formerly, at least one parameter has been required.
array_merge_recursiveThis function can now be called without any parameter. Formerly, at least one parameter has been required.
base_convertPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
bindecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
chrThe function no longer silently accepts unsupported codepoints, and casts these to 0.
convert_cyr_stringDeprecated this function.
curl_versionThe optional age parameter has been deprecated; if a value is passed, it is ignored.
currentInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
endInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
fgetcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
fputcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
get_declared_classesPreviously get_declared_classes always returned parent classes before child classes. This is no longer the case. No particular order is guaranteed for the get_declared_classes return value.
get_magic_quotes_gpcDeprecated this function.
get_magic_quotes_runtimeDeprecated this function.
gzreadThis functions returns false on failure now; previously 0 was returned.
gzwriteThis functions returns false on failure now; previously 0 was returned.
hash_algosSupport for crc32c has been added.
hebrevcDeprecated this function.
hexdecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
idn_to_asciiThe default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
idn_to_utf8The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
imagecropautoThe behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
imagecropautoThe default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.
imagefilterScatter support (IMG_FILTER_SCATTER) was added.
implodePassing the separator after the array (i.e. using the legacy signature) has been deprecated.
keyInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
ldap_control_paged_resultThis function has been deprecated.
ldap_control_paged_result_responseThis function has been deprecated.
method_existsClass checks against inherited private methods now return false.
money_formatDeprecated this function. Instead, use NumberFormatter::formatCurrency.
nextInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
octdecPassing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.
openssl_random_pseudo_bytesThe function no longer returns false on failure, but throws an Exception instead.
password_hashThe algo parameter expects a string now, but still accepts ints for backward compatibility.
password_hashThe sodium extension provides an alternative implementation for Argon2 passwords.
password_needs_rehashThe algo parameter expects a string now, but still accepts ints for backward compatibility.
pcntl_signalrestart_syscalls is now honoured for SIGALRM; previously system call restarting was always disabled for that signal. When the argument is not passed, system call restarting remains disabled for SIGALRM.
preg_matchWhen the PREG_UNMATCHED_AS_NULL flag is used, trailing unmatched capturing groups are now also included in the result with the value null (or [null, -1] when PREG_OFFSET_CAPTURE is also used), so that $matches always has the same size. Previously, they were omitted.
preg_replace_callbackThe flags parameter was added.
preg_replace_callback_arrayThe flags parameter was added.
prevInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
proc_openproc_open now also accepts an array for the command.
proc_openAdded the create_process_group option to the options parameter.
resetInstances of SPL classes are now treated like empty objects that have no properties instead of calling the Iterator method with the same name as this function.
restore_include_pathDeprecated this function.
statOn Windows, the device number is now the serial number of the volume that contains the file, and the inode number is the identifier associated with the file.
statThe size, atime, mtime and ctime statistics of symlinks are always those of the target. This was previously not the case for NTS builds on Windows.
str_getcsvThe escape parameter now interprets an empty string as signal to disable the proprietary escape mechanism. Formerly, an empty string was treated like the default parameter value.
strip_tagsThe allowed_tags now alternatively accepts an array.
unserializeAdded the max_depth element of options to set the maximum depth of structures permitted during unserialization.
Locale::lookupdefaultLocale is nullable now.
mysqli::__constructAll parameters are now nullable.
mysqli::real_connectAll parameters are now nullable.
ReflectionMethod::exportDeprecated this function.
Reflector::exportDeprecated this function.
SplFileObject::fgetcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SplFileObject::fputcsvThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SplFileObject::fwriteThe function now returns false instead of zero on failure.
SplFileObject::getCsvControlThe escape character can now be an empty string.
SplFileObject::setCsvControlThe escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SQLite3Stmt::bindParamparam now also supports the @param notation.
SQLite3Stmt::bindValueparam now also supports the @param notation.
7.3.24jdtounixThe upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture.
tidyNode::isHtmlThis function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.
7.3.15curl_setoptIntroduced CURLOPT_HTTP09_ALLOWED.
7.3.14dba_openThe lmdb driver now supports an additional map_size parameter.
dba_popenThe lmdb driver now supports an additional map_size parameter.
7.3.6DatePeriod::__constructrecurrences must be greater than 0 now.
SplFileObject::__toStringChanged from an alias of SplFileObject::current to an alias of SplFileObject::fgets.
7.3.5substr_compareoffset may now be equal to the length of haystack.
7.3.0DateTimeImmutable::createFromFormatThe v format specifier has been added.
apache_request_headersThis function became available in the FPM SAPI.
array_pushThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
array_unshiftThis function can now be called with only one parameter. Formerly, at least two parameters have been required.
assertDeclaring a function called assert() inside a namespace became deprecated. Such declaration now emits an E_DEPRECATED.
bcmulbcmul now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.
bcpowbcpow now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.
bcscalebcscale can now be used to get the current scale factor; when used as setter, it now returns the old scale value. Formerly, scale was mandatory, and bcscale always returned true.
compactcompact now issues an E_NOTICE level error if a given string refers to an unset variable. Formerly, such strings have been silently skipped.
curl_getinfoIntroduced CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
curl_setoptIntroduced CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE and CURLOPT_TLS13_CIPHERS.
definecase_insensitive has been deprecated and will be removed in version 8.0.0.
ftp_fgetThe mode parameter is now optional. Formerly it has been mandatory.
ftp_fputThe mode parameter is now optional. Formerly it has been mandatory.
ftp_getThe mode parameter is now optional. Formerly it has been mandatory.
ftp_nb_fgetThe mode parameter is now optional. Formerly it has been mandatory.
ftp_nb_fputThe mode parameter is now optional. Formerly it has been mandatory.
ftp_nb_getThe mode parameter is now optional. Formerly it has been mandatory.
ftp_nb_putThe mode parameter is now optional. Formerly it has been mandatory.
ftp_putThe mode parameter is now optional. Formerly it has been mandatory.
getallheadersThis function became available in the FPM SAPI.
imagecreatefromstringWEBP is supported now (if supported by the libgd in use).
is_countableis_countable has been added.
json_decodeJSON_THROW_ON_ERROR flags was added.
json_encodeJSON_THROW_ON_ERROR flags was added.
ldap_addSupport for controls added
ldap_compareSupport for controls added
ldap_deleteSupport for controls added
ldap_exopSupport for controls added
ldap_exop_passwdSupport for controls added
ldap_listSupport for controls added
ldap_mod_addSupport for controls added
ldap_mod_delSupport for controls added
ldap_mod_replaceSupport for controls added
ldap_modify_batchSupport for controls added
ldap_mod_add_extSupport for controls added
ldap_mod_del_extSupport for controls added
ldap_mod_replace_extSupport for controls added
ldap_parse_resultSupport for controls added
ldap_readSupport for controls added
ldap_renameSupport for controls added
ldap_rename_extSupport for controls added
ldap_searchSupport for controls added
listSupport for reference assignments in array destructuring was added.
mb_convert_caseAdded support for MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, and MB_CASE_FOLD_SIMPLE as mode.
password_hashSupport for Argon2id passwords using PASSWORD_ARGON2ID was added.
preg_quoteThe # character is now quoted
session_get_cookie_paramsThe "samesite" entry was added in the returned array.
session_set_cookie_paramsAn alternative signature supporting an lifetime_or_options array has been added. This signature supports also setting of the SameSite cookie attribute.
setcookieAn alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute.
setrawcookieAn alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute.
striposPassing an int as needle has been deprecated.
stristrPassing an int as needle has been deprecated.
strposPassing an int as needle has been deprecated.
strrchrPassing an int as needle has been deprecated.
strriposPassing an int as needle has been deprecated.
strrposPassing an int as needle has been deprecated.
strstrPassing an int as needle has been deprecated.
unlinkOn Windows, it is now possible to unlink files with handles in use, while formerly that would fail. However, it is still not possible to re-create the unlinked file, until all handles to it have been closed.
var_exportNow exports stdClass objects as an array cast to an object ((object) array( ... )), rather than using the nonexistent method stdClass::__setState. The practical effect is that now stdClass is exportable, and the resulting code will even work on earlier versions of PHP.
xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
xml_set_external_entity_ref_handlerThe return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.
7.2.19DatePeriod::__constructrecurrences must be greater than 0 now.
SplFileObject::__toStringChanged from an alias of SplFileObject::current to an alias of SplFileObject::fgets.
7.2.18litespeed_finish_requestThis function became available.
substr_compareoffset may now be equal to the length of haystack.
7.2.12DateInterval::formatThe F and f format will now always be positive.
xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
7.2.0array_uniqueIf flags is SORT_STRING, the returned array is built by adding the unique elements to a new array; formerly, it was a copy of array from which the non-unique elements were removed. Both hold the same elements under the same keys, but if the element with the largest integer key is among those removed, the index generated for an element appended to the returned array differs from the one array would have generated.
assertUsage of a string as the assertion became deprecated. It now emits an E_DEPRECATED notice when both assert.active and zend.assertions are set to 1.
bcmodnum1 and num2 are no longer truncated to integer, so now the behavior of bcmod follows fmod rather than the % operator.
bcmodThe scale parameter was added.
countcount will now yield a warning on invalid countable types passed to the value parameter.
date_parseThe zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
date_parse_from_formatThe zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
date_sun_infoThe calculation was fixed with regards to local midnight instead of local noon, which changes the results slightly.
exif_read_dataThe file parameter now supports both local files and stream resources.
exif_read_dataSupport for the following EXIF formats were added: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
exif_thumbnailThe file parameter now supports both local files and stream resources.
ezmlm_hashDeprecated this function.
get_classPrior to this version the default value for object was null and it had the same effect as not passing any value. Now null has been removed as the default value for object, and is no longer a valid input.
gettypeClosed resources are now reported as 'resource (closed)'. Previously the returned value for closed resources were 'unknown type'.
hash_copyAccept and return HashContext instead of resource.
hash_finalAccept HashContext instead of resource.
hash_hmacUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
hash_hmac_fileUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
hash_initUsage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMAC was disabled.
hash_initReturn HashContext instead of resource.
hash_pbkdf2Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
hash_updateAccept HashContext instead of resource.
hash_update_fileAccept HashContext instead of resource.
hash_update_streamAccept HashContext instead of resource.
idn_to_asciiINTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
idn_to_utf8INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
imageantialiasimageantialias is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library.
imagegdimagegd now allows to output truecolor images. Formerly, these have been implicitly converted to palette.
imagelayereffectAdded IMG_EFFECT_MULTIPLY (requires system libgd >= 2.1.1 or the bundled libgd).
imagetypesIMG_BMP added.
is_objectis_object now returns true for unserialized objects without a class definition (class of __PHP_Incomplete_Class). Previously false was returned.
json_decodeassociative is nullable now.
json_decodeJSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added.
json_encodeJSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added.
mailThe additional_headers parameter now also accepts an array.
mb_check_encodingThis function now also accepts an array as value. Formerly, only strings have been supported.
mb_convert_encodingThis function now also accepts an array as string. Formerly, only strings have been supported.
mb_parse_strCalling mb_parse_str without the second parameter was deprecated.
mb_send_mailThe additional_headers parameter now also accepts an array.
mt_randmt_rand has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
number_formatnumber_format was changed to not being able to return -0, previously -0 could be returned for cases like where num would be -0.01.
openssl_pkcs7_verifyThe output_filename parameter was added.
packfloat and double types supports both Big Endian and Little Endian.
parse_strUsage of parse_str without a second parameter now emits an E_DEPRECATED notice.
password_hashSupport for Argon2i passwords using PASSWORD_ARGON2I was added.
preg_matchThe PREG_UNMATCHED_AS_NULL is now supported for the flags parameter.
preg_match_allThe PREG_UNMATCHED_AS_NULL is now supported for the flags parameter.
preg_quotedelimiter is nullable now.
proc_niceThis function is now available on Windows.
randrand has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
read_exif_dataThis function alias was deprecated.
session_abortThe return type of this function is bool now. Formerly, it has been void.
session_module_nameIt is now explicitly forbidden to set the module name to "user". Formerly, this has been silently ignored.
session_namesession_name checks session status, previously it only checked cookie status. Therefore, older session_name allows to call session_name after session_start which may crash PHP and may result in misbehaviors.
session_resetThe return type of this function is bool now. Formerly, it has been void.
session_set_cookie_paramsReturns true on success or false on failure. Formerly the function returned void.
session_unsetThe return type of this function is bool now. Formerly, it has been void.
session_write_closeThe return type of this function is bool now. Formerly, it has been void.
set_error_handlererrcontext became deprecated. Usage of this parameter now emits an E_DEPRECATED notice.
unpackfloat and double types supports both Big Endian and Little Endian.
utf8_decodeThis function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.
utf8_encodeThis function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.
PDOStatement::debugDumpParamsPDOStatement::debugDumpParams now returns the SQL sent to the database, including the full, raw query (including the replaced placeholders with their bound values). Note, that this will only be available if emulated prepared statements are turned on.
ReflectionClass::getMethodsfilter is nullable now.
ReflectionClass::getPropertiesfilter is nullable now.
SQLite3::openBlobThe flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.
7.1.24xml_parser_get_optionoptions now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
7.1.5IntlDateFormatter::formatSupport for providing general DateTimeInterface objects to the datetime parameter was added. Formerly, only proper DateTime objects were supported.
7.1.4PDO::sqliteCreateFunctionThe flags parameter has been added.
SQLite3::createFunctionThe flags parameter has been added.
7.1.2dns_get_recordAdded support for CAA record type.
fopenThe 'e' option was added.
7.1.1get_defined_functionsThe exclude_disabled parameter has been added.
packThe "e", "E", "g" and "G" codes were added to enable byte order support for float and double.
7.1.0DateInterval::formatThe F and f format characters were added.
DateTime::setTimeThe microsecond parameter was added.
DateTimeImmutable::__constructFrom now on microseconds are filled with actual value. Not with '00000'.
DateTimeImmutable::setTimeThe microsecond parameter was added.
DateTimeZone::listIdentifierscountryCode is nullable now.
array_columnProperty visibility is now respected. Formerly, protected and private properties were read directly.
array_randThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
curl_multi_setoptIntroduced CURLMOPT_PUSHFUNCTION.
exif_imagetypeAdded WebP support.
file_get_contentsSupport for negative offsets has been added.
get_headersThe context parameter was added.
getenvThe name can now be omitted to retrieve an associative array of all environment variables.
getimagesizeAdded WebP support.
getoptAdded the rest_index parameter.
grapheme_extractSupport for negative offsets has been added.
grapheme_striposSupport for negative offsets has been added.
grapheme_strposSupport for negative offsets has been added.
hash_algosSupport for sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 and sha3-512 has been added.
iconv_strposSupport for negative offsets has been added.
json_decodeAn empty JSON key ("") can be encoded to the empty object property instead of using a key with value _empty_.
json_encodeJSON_UNESCAPED_LINE_TERMINATORS flags was added.
json_encodeserialize_precision is used instead of precision when encoding float values.
listIt is now possible to specify keys in list. This enables destructuring of arrays with non-integer or non-sequential keys.
long2ipThe parameter type of ip has been changed from string to int.
mb_eregmb_ereg will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
mb_ereg_replaceThe function checks whether string is valid for the current encoding.
mb_ereg_replaceThe e modifier has been deprecated.
mb_ereg_replace_callbackThe function checks whether string is valid for the current encoding.
mb_ereg_search_setposSupport for negative offsets has been added.
mb_eregimb_eregi will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
mb_eregi_replaceThe function checks whether string is valid for the current encoding.
mb_eregi_replaceThe e modifier has been deprecated.
mb_regex_set_optionsThe "e" option now emits an E_DEPRECATED.
mb_strimwidthSupport for negative starts and widths has been added.
mb_striposSupport for negative offsets has been added.
mb_strposSupport for negative offsets has been added.
mt_randrand has been made an alias of mt_rand.
mt_randmt_rand has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second parameter.
mt_srandsrand has been made an alias of mt_srand.
mt_srandmt_rand has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand with MT_RAND_PHP as the second parameter.
openssl_csr_newoptions now also supports curve_name.
openssl_decryptThe tag and aad parameters were added.
openssl_encryptThe tag, aad and tag_length parameters were added.
openssl_pkey_newThe curve_name key of the options parameter was added to make it possible to create EC keys based on Elliptic Curve algorithms.
output_add_rewrite_varAs of PHP 7.1.0, a dedicated output buffer is used, url_rewriter.tags is used solely for output functions and url_rewriter.hosts is available. Prior to PHP 7.1.0, rewrite variables set by output_add_rewrite_var shared an output buffer with transparent session id support (see session.trans_sid_tags).
output_reset_rewrite_varsBefore PHP 7.1.0, rewrite vars set by output_add_rewrite_var use the same Session module trans sid output buffer. Since PHP 7.1.0, dedicated output buffer is used and output_reset_rewrite_vars only removes rewrite vars defined by output_add_rewrite_var.
pcntl_signalAs of PHP 7.1.0 the handler callback is given a second argument containing the siginfo of the specific signal. This data is only supplied if the operating system has the siginfo_t structure. If the OS does not implement siginfo_t NULL is supplied.
pcntl_signal_get_handlerpcntl_signal_get_handler has been added.
pg_fetch_allThe mode parameter was added.
pg_last_noticeThe mode parameter was added.
pg_selectThe mode parameter was added.
randrand has been made an alias of mt_rand.
session_startsession_start now returns false and no longer initializes $_SESSION when it failed to start the session.
shuffleThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
srandsrand has been made an alias of mt_srand.
str_shuffleThe internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.
striposSupport for negative offsets has been added.
strposSupport for negative offsets has been added.
substr_countSupport for negative offsets and lengths has been added. length may also be 0 now.
tempnamtempnam now emits a notice when falling back to the temp directory of the system.
unpackThe optional offset has been added.
unserializeThe allowed_classes element of options is now strictly typed, i.e. if anything other than an array or a bool is given, unserialize returns false and issues an E_WARNING.
ReflectionType::__toStringReflectionType::__toString has been deprecated.
SessionHandler::gcPrior to this version, the function returned true on success.
SessionHandlerInterface::gcPrior to this version, the function returned true on success.
7.0.16dns_get_recordAdded support for CAA record type.
fopenThe 'e' option was added.
7.0.15get_defined_functionsThe exclude_disabled parameter has been added.
packThe "e", "E", "g" and "G" codes were added to enable byte order support for float and double.
7.0.11iconv_substrIf string is equal to offset characters long, an empty string will be returned. Prior to this version, false was returned in this case.
7.0.10imagetypesIMG_WEBP added.
SplFileObject::getCsvControlAdded the escape character to the returned array.
SQLite3::__constructThe filename can now be empty to use a private, temporary on-disk database.
7.0.9getenvThe local_only parameter has been added.
7.0.7curl_multi_setoptIntroduced CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH and CURLMOPT_MAX_TOTAL_CONNECTIONS.
curl_setoptIntroduced CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT and CURLSSLOPT_NO_REVOKE.
7.0.0array_columnThe rows of array may now be objects as well as arrays.

Как оценить надёжность найденного фрагмента

От поискового результата к проверенному решению
  1. Открыть официальную страницу и проверить, для какой версии она опубликована.
  2. Прочитать сигнатуру, описание результата, ошибки и changelog, а не только первый пример.
  3. Проверить PHP и расширение в своём SAPI; воспроизвести минимальный случай без секретов.
  4. Перенести идею в тест задачи и связать её с точной учебной главой.
Источники и обсуждения

Код и руководство с собой

Скачайте самостоятельные примеры с исходными данными, инструкциями и ожидаемыми результатами. Примеры HTTP и фрагменты для проекта помечены отдельно: им нужно указанное окружение.

Код не исполняется на сайте. Скачайте нужный пример и запускайте его в своём локальном окружении.

Материалы сверены 2026-10-12. Примеры и объяснения написаны для этого руководства; источники и обсуждения доступны в каждой главе.