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

Дерево руководства
Глава 468 · Официальная база → практическое применение
Как читать, проверять и переиспользовать PHP Manual
Форматы, версии, сигнатуры, заметки, лицензия, индексы и changelog — с понятным маршрутом от документации к собственному тесту.
PHP Manual: корень полного официального дерева
Корень объединяет Copyright, начало работы, установку, справочник языка, безопасность, возможности PHP, справочник функций и расширений, FAQ и приложения. Локальное практическое дерево и официальный порядок ведут к одним подробным материалам; ни один из них не заменяет другой.
PHP Manual как единая книга
Служебная страница manual.php связывает руководство в единый документ. В локальной библиотеке её роль выполняет полное дерево: оно сохраняет официальный порядок, а поиск по задаче добавляет второй вход к тем же главам.
Copyright: авторство текста, кода и пользовательских заметок
У руководства, примеров и пользовательских заметок есть условия использования и атрибуции. Перед публикацией производного материала проверяют 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.
<?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.
| Part | Description |
|---|---|
| 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. Definitions | Work, Adaptation, Collection, распространение, воспроизведение и стороны лицензии. |
| 2–3. Rights and grant | Свободные законом случаи сохраняются; лицензия даёт всемирные, безвозмездные, неисключительные права на воспроизведение, адаптацию, распространение и публичное исполнение. |
| 4. Restrictions | При распространении сохраняют лицензию и уведомления, не вводят дополнительные ограничения, дают разумную атрибуцию и отмечают изменения; атрибуция не означает одобрение автором. |
| 5–6. Warranty and liability | Произведение предоставляется как есть; гарантии и ответственность ограничены настолько, насколько разрешает применимое право. |
| 7. Termination | Нарушение прекращает права нарушителя автоматически; добросовестные получатели адаптаций и коллекций сохраняют свои лицензии. |
| 8. Miscellaneous | Лицензия передаётся каждому получателю, недействительность одного условия не отменяет остальные, а изменение договора требует письменного согласия. |
Полный официальный договор страницы — большой справочник, раскрывается по запросу
Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.
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
"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.
"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.
"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.
"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
"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.
"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.
"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.
"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:
to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
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.";
to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
to Distribute and Publicly Perform Adaptations.
For the avoidance of doubt:
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;
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,
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:
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.
В функции встроенных модулей внесли следующие изменения.
| Version | Function | Description |
|---|---|---|
| 8.5.0 | array_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_handles | The 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::busy | This method was added. | |
| 8.4.0 | DateInterval::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.0 | DateInterval::__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), теперь приводятся, а не игнорируются. | |
| assert | INI-настройки 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_mimeheader | NUL-байты больше не отбрасываются при кодировании строк по правилам синтаксиса 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.9 | DateTimeImmutable::createFromFormat | Спецификатор (пробел) теперь также поддерживает символы неразрывного пробела NBSP (U+A0) и узкого неразрывного пробела NNBSP (U+202F). |
| 8.2.1 | SplFileObject::__toString | Изменён с псевдонима SplFileObject::fgets на реализацию SplFileObject::current, которая возвращает строку CSV, когда установлен флаг SplFileObject::READ_CSV. |
| 8.2.0 | ArrayIterator::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.14 | SplFileObject::__toString | Изменён с псевдонима SplFileObject::fgets на реализацию SplFileObject::current, которая возвращает строку CSV, когда установлен флаг SplFileObject::READ_CSV. |
| 8.1.8 | DateTime::createFromFormat | Теперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал. |
| DateTimeImmutable::createFromFormat | Теперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал. | |
| date_parse_from_format | При передаче нулевых байтов в параметр datetime функция теперь выбрасывает ошибку ValueError; раньше функция молча игнорировала нулевые байты. | |
| 8.1.0 | DateTime::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::buildFromDirectory | Phar::buildFromDirectory больше не возвращает значение false. | |
| Phar::buildFromIterator | Phar::buildFromIterator больше не возвращает значение false. | |
| PharData::buildFromDirectory | PharData::buildFromDirectory больше не возвращает значение false. | |
| PharData::buildFromIterator | PharData::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.21 | DateTime::createFromFormat | Теперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал. |
| DateTimeImmutable::createFromFormat | Теперь метод выбрасывает исключение ValueError, если в параметр datetime передали NULL-байты, что раньше метод без предупреждения игнорировал. | |
| date_parse_from_format | При передаче нулевых байтов в параметр datetime функция теперь выбрасывает ошибку ValueError; раньше функция молча игнорировала нулевые байты. | |
| 8.0.5 | imageinterlace | Функция imageinterlace теперь возвращает значение с типом bool; раньше функция возвращала значение с типом int, ненулевое для изображений с интерлейсингом, иначе 0. |
| 8.0.3 | DOMDocument::getElementsByTagNameNS | namespace теперь допускает значение null. |
| DOMElement::getElementsByTagNameNS | namespace теперь допускает значение null. | |
| DOMImplementation::createDocument | namespace теперь допускает значение null. | |
| finfo::__construct | magic_database теперь допускает значение null. | |
| bind_textdomain_codeset | Параметр codeset теперь принимает значение null. Раньше было невозможно получить текущую установленную кодировку. | |
| bindtextdomain | Параметр directory теперь принимает значение null. Раньше было невозможно получить текущий установленный каталог. | |
| finfo_open | magic_database теперь допускает значение null. | |
| imagegd | Параметр file теперь принимает значение null. | |
| imagegd2 | Параметр file теперь принимает значение null. | |
| SoapClient::__setLocation | location теперь допускает значение null. | |
| SoapVar::__construct | typeName, typeNamespace, nodeName и nodeNamespace теперь допускают значения null. | |
| 8.0.0 | CURLFile::__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::createDocument | doctype теперь допускает значение null. | |
| DOMImplementation::createDocument | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED. | |
| DOMImplementation::createDocumentType | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED. | |
| DOMImplementation::hasFeature | Теперь статический вызов метода выбросит исключение Error. Раньше метод выдавал ошибку уровня E_DEPRECATED. | |
| FFI::cdef | lib теперь допускает значение null. | |
| FFI::string | size теперь допускает значение null; ранее значением по умолчанию был 0. | |
| FilesystemIterator::__construct | Теперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку; ранее выбрасывалось исключение RuntimeException. | |
| abs | Параметр num больше не принимает внутренние объекты, поддерживающие числовое преобразование. | |
| apache_note | note_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. | |
| bzwrite | length теперь допускает значение null. | |
| call_user_func_array | Ключи параметра args теперь интерпретируются как имена параметров, а не игнорируются. | |
| ceil | Параметр num больше не принимает внутренние объекты, которые поддерживают числовое преобразование. | |
| closedir | Параметр dir_handle теперь допускает значение null. | |
| com_event_sink | sink_interface теперь допускает значение null. | |
| com_get_active_object | codepage теперь допускает значение 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_add | context ожидает экземпляр DeflateContext; раньше, ожидался ресурс (resource). | |
| deflate_init | В случае успешного выполнения функция возвращает экземпляр DeflateContext; раньше, возвращался ресурс (resource). | |
| dir | context теперь допускает значение null. | |
| dom_import_simplexml | Функция больше не возвращает null в случае возникновения ошибки. | |
| easter_date | Параметр year теперь принимает значение null. | |
| easter_date | Функция выбрасывает ошибку ValueError, если значение параметра year выходит за пределы допустимого диапазона. Раньше вызывалась ошибка уровня E_WARNING и функция возвращала false. | |
| easter_days | year теперь допускает значение 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_data | required_sections теперь допускает значение null. | |
| explode | Теперь функция explode выбрасывает исключение TypeError, если разделитель separator — пустая строка "". Раньше функция explode вместо исключения возвращала false. | |
| ezmlm_hash | Функцию удалили. | |
| fgetcsv | Параметр length теперь принимает значение null. | |
| file_get_contents | Параметр length теперь принимает значение null. | |
| finfo_buffer | context теперь допускает значение null. | |
| finfo_file | context теперь допускает значение 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_resources | type теперь допускает значение 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. | |
| gzgets | length теперь допускает значение null; ранее значение по умолчанию было 1024. | |
| gzwrite | length теперь допускает значение 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_remove | name теперь допускает значение null. | |
| hebrevc | Функцию удалили. | |
| html_entity_decode | Параметр encoding теперь принимает значение null. | |
| htmlentities | Параметр encoding теперь принимает значение null. | |
| http_build_query | Параметр arg_separator теперь допускает значение null. | |
| iconv_mime_decode | encoding теперь допускает значение null. | |
| iconv_mime_decode_headers | encoding теперь допускает значение null. | |
| iconv_strlen | Параметр encoding теперь принимает значение null. | |
| iconv_strpos | encoding теперь допускает значение null. | |
| iconv_strrpos | encoding теперь допускает значение null. | |
| iconv_substr | length и encoding теперь допускают значение null. | |
| idate | Параметр timestamp теперь принимает значение null. | |
| ignore_user_abort | Параметр enable теперь принимает значение null. | |
| imageaffine | clip теперь допускает значение 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_add | context ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource). | |
| inflate_get_read_len | context ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource). | |
| inflate_get_status | context ожидает экземпляр 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_proc | callback теперь допускает значение null. | |
| ldap_sort | Функция была удалена. | |
| levenshtein | До этой версии levenshtein нужно было вызывать с двумя или пятью аргументами. | |
| levenshtein | До этой версии, levenshtein возвращала значение -1, если одна из строк аргумента более 255 символов. | |
| libxml_disable_entity_loader | Функция устарела. | |
| libxml_use_internal_errors | use_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_stripos | needle теперь принимает пустую строку. | |
| mb_stripos | Параметр encoding теперь принимает значение null. | |
| mb_stristr | needle теперь принимает пустую строку. | |
| mb_stristr | Параметр encoding теперь принимает значение null. | |
| mb_strlen | Параметр encoding теперь принимает значение null. | |
| mb_strpos | needle теперь принимает пустую строку. | |
| mb_strpos | Параметр encoding теперь принимает значение null. | |
| mb_strrchr | needle теперь принимает пустую строку. | |
| mb_strrchr | Параметр encoding теперь принимает значение null. | |
| mb_strrichr | needle теперь принимает пустую строку. | |
| mb_strrichr | Параметр encoding теперь принимает значение null. | |
| mb_strripos | needle теперь принимает пустую строку. | |
| mb_strripos | Параметр encoding теперь принимает значение null. | |
| mb_strrpos | needle теперь принимает пустую строку. | |
| mb_strrpos | Запретили передачу названия кодировки для параметра encoding в третьем аргументе вместо параметра offset. | |
| mb_strrpos | Параметр encoding теперь принимает значение null. | |
| mb_strstr | needle теперь принимает пустую строку. | |
| 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_export | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_export_to_file | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_get_public_key | В случае успешного выполнения возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key. | |
| openssl_csr_get_public_key | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_get_subject | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_new | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_new | private_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key. | |
| openssl_csr_sign | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned. | |
| openssl_csr_sign | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_sign | ca_certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR. | |
| openssl_csr_sign | private_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_details | key теперь принимает экземпляр 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_public | public_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_bytes | strong_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_checkpurpose | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509. | |
| openssl_x509_checkpurpose | untrusted_certificates_file теперь допускает значение null. | |
| openssl_x509_export | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509. | |
| openssl_x509_export_to_file | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509. | |
| openssl_x509_fingerprint | certificate теперь принимает экземпляр 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_signals | enable теперь допускает значение null. | |
| pcntl_getpriority | process_id теперь допускает значение null. | |
| pcntl_setpriority | process_id теперь допускает значение null. | |
| pfsockopen | Параметр timeout теперь принимает значение null. | |
| pg_client_encoding | connection теперь допускает значение null. | |
| pg_close | connection теперь допускает значение null. | |
| pg_dbname | connection теперь допускает значение null. | |
| pg_end_copy | connection теперь допускает значение null. | |
| pg_fetch_all | Функция pg_fetch_all теперь возвращает пустой массив (array) вместо значения false для наборов результатов без строк. | |
| pg_host | connection теперь допускает значение null. | |
| pg_last_error | connection теперь допускает значение null. | |
| pg_lo_write | length теперь допускает значение null. | |
| pg_options | connection теперь допускает значение null. | |
| pg_ping | connection теперь допускает значение null. | |
| pg_port | connection теперь допускает значение null. | |
| pg_trace | connection теперь допускает значение null. | |
| pg_tty | connection теперь допускает значение null. | |
| pg_untrace | connection теперь допускает значение null. | |
| pg_version | connection теперь допускает значение 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. | |
| readdir | dir_handle теперь допускает значение null. | |
| readline_info | Параметры var_name и value теперь принимают значение null. | |
| readline_read_history | Параметр filename теперь принимает значение null. | |
| readline_write_history | Параметр filename теперь принимает значение null. | |
| restore_include_path | Функцию удалили. | |
| rewinddir | dir_handle теперь допускает значение null. | |
| round | Параметр num больше не принимает внутренние объекты, которые поддерживают числовое преобразование. | |
| sapi_windows_vt100_support | enable теперь допускает значение null. | |
| scandir | context теперь допускает значение 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_attach | size теперь допускает значение null. | |
| shm_detach | shm ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource). | |
| shm_get_var | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource). | |
| shm_has_var | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource). | |
| shm_put_var | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource). | |
| shm_remove | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource). | |
| shm_remove_var | shm теперь ожидает экземпляр 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_error | socket теперь допускает значение null. | |
| socket_close | Параметр socket теперь принимает объект Socket; раньше принимался тип resource. | |
| socket_connect | Параметр socket теперь принимает объект Socket; раньше принимался тип resource. | |
| socket_connect | port теперь допускает значение null. | |
| socket_create | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource). | |
| socket_create_listen | В случае успешного выполнения функция возвращает экземпляр класса Socket; раньше возвращался ресурс (resource). | |
| socket_create_pair | pair является ссылкой на массив экземпляров 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_contents | length теперь допускает значение 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_crypto | session_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_replace | length теперь допускает значение null. | |
| touch | Параметр mtime и atime теперь допускают значение null. | |
| trigger_error | Функция выбрасывает ошибку ValueError, если в аргументе error_level передали недопустимое значение. Раньше функция возвращала значение false. | |
| uasort | Функция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке. | |
| uksort | Функция теперь выдаст ошибку уровня E_WARNING, если параметр callback-функции ожидает передачу значения по ссылке. | |
| umask | Параметр mask теперь может принимать значение null. | |
| unixtojd | timestamp теперь допускает значение 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_ns | encoding теперь допускает значение 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::getDisplayLanguage | displayLocale теперь допускает значение null. | |
| Locale::getDisplayName | displayLocale теперь допускает значение null. | |
| Locale::getDisplayRegion | displayLocale теперь допускает значение null. | |
| Locale::getDisplayScript | displayLocale теперь допускает значение null. | |
| Locale::getDisplayVariant | displayLocale теперь допускает значение null. | |
| mysqli_result::fetch_object | Параметр constructor_args теперь принимает пустой массив [] для конструкторов без параметров; раньше функция выбрасывала исключение. | |
| mysqli_result::field_seek | Теперь функция каждый раз возвращает значение true. Раньше функция возвращала значение false, если возникала ошибка. | |
| mysqli_stmt::close | Функция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки. | |
| mysqli_stmt::__construct | query теперь допускает значение null. | |
| mysqli::begin_transaction | name теперь допускает значение null. | |
| mysqli::close | Функция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки. | |
| mysqli::commit | name теперь допускает значение null. | |
| mysqli::debug | Функция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки. | |
| mysqli::rollback | name теперь допускает значение null. | |
| NumberFormatter::create | pattern теперь допускает значение null. | |
| PDOStatement::fetchAll | Теперь метод каждый раз возвращает массив (array), раньше иногда возвращалось false, если возникала ошибка. | |
| Phar::addFile | localName теперь допускает значение null. | |
| Phar::buildFromIterator | baseDirectory теперь допускает значение null. | |
| Phar::compress | extension теперь допускает значение null. | |
| Phar::convertToData | format, compression и extension теперь допускают значение null. | |
| Phar::convertToExecutable | format, compression и extension теперь допускают значение null. | |
| Phar::createDefaultStub | index и webIndex теперь допускают значение null. | |
| Phar::decompress | extension теперь допускает значение null. | |
| Phar::getMetadata | Добавлен параметр unserializeOptions. | |
| Phar::setDefaultStub | webIndex теперь допускает значение null. | |
| Phar::setSignatureAlgorithm | privateKey теперь допускает значение null. | |
| Phar::webPhar | Параметр fileNotFoundScript и rewrite теперь допускают значение null. | |
| PharData::addFile | localName теперь допускает значение null. | |
| PharData::buildFromIterator | baseDirectory теперь допускает значение null. | |
| PharData::compress | extension теперь допускает значение null. | |
| PharData::convertToData | format, compression и extension теперь допускают значение null. | |
| PharData::convertToExecutable | format, compression и localName теперь допускают значение null. | |
| PharData::decompress | extension теперь допускает значение null. | |
| PharData::setDefaultStub | webIndex теперь допускает значение null. | |
| PharData::setSignatureAlgorithm | privateKey теперь допускает значение null. | |
| PharFileInfo::getMetadata | Добавлен параметр unserializeOptions. | |
| PharFileInfo::isCompressed | compression теперь допускает значение 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::getClosure | object теперь допускает значение null. | |
| ReflectionMethod::invokeArgs | Ключи args теперь интерпретируются как имена параметров, а не игнорируются. | |
| ReflectionParameter::getClass | Метод устарел в пользу метода ReflectionParameter::getType. | |
| ReflectionParameter::getDefaultValue | Метод теперь позволяет получить значение по умолчанию для параметров встроенных функций и встроенных методов класса. Ранее выбрасывалось ReflectionException. | |
| ReflectionParameter::getDefaultValueConstantName | Метод теперь разрешает получать названия констант значений по умолчанию для встроенных функций и встроенных методов класса. Раньше выбрасывалось исключение ReflectionException. | |
| ReflectionParameter::isArray | Метод устарел в пользу метода ReflectionParameter::getType. | |
| ReflectionParameter::isCallable | Метод устарел в пользу метода ReflectionParameter::getType. | |
| ReflectionProperty::getValue | object теперь допускает значение null. | |
| ReflectionProperty::isInitialized | Параметр object теперь принимает значение null. | |
| ReflectionType::__toString | С метода ReflectionType::__toString сняли признак устаревшего. | |
| Reflector::export | Функцию удалили. | |
| SimpleXMLElement::asXML | filename теперь допускает значение null. | |
| SoapClient::__doRequest | Тип параметра oneWay изменился с int на bool. | |
| SoapClient::__setCookie | value теперь допускает значение null. | |
| SoapServer::handle | request теперь допускает значение null. | |
| SplFileInfo::getFileInfo | class теперь допускает значение null. | |
| SplFileInfo::getPathInfo | class теперь допускает значение null. | |
| SplFileInfo::openFile | context теперь допускает значение null. | |
| SplFixedArray::__construct | Теперь выбрасывает исключение ValueError, если параметр size отрицателен; ранее выбрасывалось исключение InvalidArgumentException. | |
| tidy::__construct | filename, config, encoding и useIncludePath теперь допускают значение null. | |
| tidy::parseFile | Параметры config и encoding теперь принимают значение null. | |
| tidy::parseString | config и encoding теперь допускают значение null. | |
| tidy::repairFile | tidy::repairFile теперь статичный метод. | |
| tidy::repairFile | config и encoding теперь допускают значение null. | |
| tidy::repairString | tidy::repairString теперь статичный метод. | |
| tidy::repairString | config и 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::startAttributeNs | prefix теперь допускает значение 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::writeDtdEntity | publicId, 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.12 | jdtounix | Увеличен верхний предел julian_day. Раньше он был 2465342 независимо от архитектуры. |
| tidyNode::isHtml | Исправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML. | |
| 7.4.9 | ReflectionClass::setStaticPropertyValue | Метод ReflectionClass::setStaticPropertyValue теперь поддерживает установку закрытых и защищённых статических свойств; раньше выбрасывалось исключение ReflectionException. |
| 7.4.4 | proc_open | Добавлена опция create_new_console в параметр options. |
| 7.4.3 | curl_setopt | Добавили опцию CURLOPT_HTTP09_ALLOWED. |
| 7.4.2 | dba_open | Драйвер lmdb теперь поддерживает дополнительный параметр map_size. |
| dba_popen | Драйвер lmdb теперь поддерживает дополнительный параметр map_size. | |
| 7.4.0 | DatePeriod::__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_open | proc_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::lookup | defaultLocale теперь допускает значение 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.24 | jdtounix | Увеличен верхний предел julian_day. Раньше он был 2465342 независимо от архитектуры. |
| tidyNode::isHtml | Исправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML. | |
| 7.3.15 | curl_setopt | Добавили опцию CURLOPT_HTTP09_ALLOWED. |
| 7.3.14 | dba_open | Драйвер lmdb теперь поддерживает дополнительный параметр map_size. |
| dba_popen | Драйвер lmdb теперь поддерживает дополнительный параметр map_size. | |
| 7.3.6 | DatePeriod::__construct | Параметр recurrences теперь принимает только значения больше 0. |
| SplFileObject::__toString | Изменён псевдоним с SplFileObject::current на SplFileObject::fgets. | |
| 7.3.5 | substr_compare | Параметр offset теперь может равняться параметру haystack. |
| 7.3.0 | DateTimeImmutable::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.19 | DatePeriod::__construct | Параметр recurrences теперь принимает только значения больше 0. |
| SplFileObject::__toString | Изменён псевдоним с SplFileObject::current на SplFileObject::fgets. | |
| 7.2.18 | litespeed_finish_request | Функция стала частью SAPI-модуля LiteSpeed. |
| substr_compare | Параметр offset теперь может равняться параметру haystack. | |
| 7.2.12 | DateInterval::format | Формат F и f теперь всегда будет положительным. |
| xml_parser_get_option | Теперь параметр options поддерживает значения XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE. | |
| 7.2.0 | array_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_utf8 | INTL_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_decode | associative теперь nullable. | |
| json_decode | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags. | |
| json_encode | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags. | |
| Параметр 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_quote | delimiter теперь допускает значение 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::debugDumpParams | PDOStatement::debugDumpParams теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая заменённые параметры с их связанными значениями). Обратите внимание, что это будет работать только при включённой эмуляции подготавливаемых запросов. | |
| ReflectionClass::getMethods | filter теперь допускает значение null. | |
| ReflectionClass::getProperties | filter теперь допускает значение null. | |
| SQLite3::openBlob | Добавлен параметр flags, позволяющий записать BLOB; ранее поддерживалось только чтение. | |
| 7.1.24 | xml_parser_get_option | Теперь параметр options поддерживает значения XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE. |
| 7.1.5 | IntlDateFormatter::format | Теперь параметр datetime поддерживает общие объекты DateTimeInterface. Раньше поддерживались только объекты DateTime. |
| 7.1.4 | PDO::sqliteCreateFunction | Добавлен параметр flags. |
| SQLite3::createFunction | Добавлен параметр flags. | |
| 7.1.2 | dns_get_record | Добавили поддержку записей типа CAA. |
| fopen | Добавили флаг 'e'. | |
| 7.1.1 | get_defined_functions | Добавили параметр exclude_disabled. |
| pack | Добавили коды e, E, g и G для поддержки порядка байтов для типов float и double. | |
| 7.1.0 | DateInterval::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. | |
| tempnam | tempnam теперь выдаёт уведомление при возврате во временный каталог системы. | |
| unpack | Добавили необязательный параметр offset. | |
| unserialize | Для элемента allowed_classes в параметре options определили строгий тип, поэтому функция unserialize вернёт значение false и вызовет ошибку уровня E_WARNING, если в элементе передали значение не с типом array или bool. | |
| ReflectionType::__toString | Метод ReflectionType::__toString объявлен устаревшим. | |
| SessionHandler::gc | До этой версии, в случае успешного выполнения эта функция возвращала true. | |
| SessionHandlerInterface::gc | До этой версии, функция возвращала true в случае успешного выполнения. | |
| 7.0.16 | dns_get_record | Добавили поддержку записей типа CAA. |
| fopen | Добавили флаг 'e'. | |
| 7.0.15 | get_defined_functions | Добавили параметр exclude_disabled. |
| pack | Добавили коды e, E, g и G для поддержки порядка байтов для типов float и double. | |
| 7.0.11 | iconv_substr | Если string имеет длину равную offset, будет возвращена пустая строка. Ранее в подобных случаях возвращалось false. |
| 7.0.10 | imagetypes | Добавлена константа IMG_WEBP. |
| SplFileObject::getCsvControl | В массив с результатами добавили символ экранирования. | |
| SQLite3::__construct | Параметр filename разрешается задавать пустой строкой, чтобы создать на диске приватную временную базу данных. | |
| 7.0.9 | getenv | Добавлен параметр local_only. |
| 7.0.7 | curl_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
Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.
The following changes have been made to functions of bundled extensions.
| Version | Function | Description |
|---|---|---|
| 8.6.0 | ini_get_all | The builtin_default_value element was added to the details array returned for each directive. |
| snmp3_get | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| snmp3_getnext | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| snmp3_real_walk | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| snmp3_set | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| snmp3_walk | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| SNMP::setSecurity | The privacy protocol now accepts "AES192", "AES192C", "AES256", and "AES256C" when supported by the Net-SNMP library. | |
| 8.5.0 | ArrayIterator::__construct | Passing an enum as array now throws an InvalidArgumentException. |
| ArrayIterator::__construct | Passing an object as array is deprecated. | |
| ArrayObject::__construct | Passing an enum as array now throws an InvalidArgumentException. | |
| ArrayObject::__construct | Passing an object as array is deprecated. | |
| array_key_exists | Using null in the key parameter is deprecated, use an empty string instead. | |
| array_multisort | The return type is true now; previously, it was bool. | |
| bzcompress | A ValueError is now thrown if block_size is not between 1 and 9, or if work_factor is not between 0 and 250. | |
| chr | Passing integers outside the interval [0, 255] is now deprecated. | |
| cli_set_process_title | cli_set_process_title will now emit an E_WARNING when setting a process title that is too long; previously the title would be truncated. | |
| closedir | Using null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided. | |
| curl_close | This function has been deprecated. | |
| curl_multi_get_handles | The function was added. | |
| curl_share_close | This function has been deprecated. | |
| error_get_last | The returned array now includes a "trace" key when a fatal error backtrace is available. | |
| exif_imagetype | Added HEIF support. | |
| finfo_buffer | The context parameter has been deprecated as it is ignored. | |
| finfo_close | This function has been deprecated. | |
| finfo_close | The return type is true now; previously, it was bool. | |
| finfo_file | A ValueError is now thrown instead of a TypeError when filename contains null bytes. | |
| fprintf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| ftp_set_option | The return type is true now; previously, it was bool. | |
| gc_collect_cycles | The return value no longer includes strings and resources that were indirectly collected through cycles. | |
| get_defined_functions | The exclude_disabled parameter has been deprecated, as it no longer has any effect. | |
| grapheme_levenshtein | This function has been added. | |
| grapheme_stripos | The optional parameter locale has been added. | |
| grapheme_stristr | The optional parameter locale has been added. | |
| grapheme_strpos | The optional parameter locale has been added. | |
| grapheme_strripos | The optional parameter locale has been added. | |
| grapheme_strrpos | The optional parameter locale has been added. | |
| grapheme_strstr | The optional parameter locale has been added. | |
| grapheme_substr | The optional parameter locale has been added. | |
| gzfile | use_include_path is now of type bool. Previously, it was of type int. | |
| gzopen | use_include_path is now of type bool. Previously, it was of type int. | |
| hrtime | On macOS, the implementation now uses clock_gettime_nsec_np(CLOCK_UPTIME_RAW) instead of mach_absolute_time(). | |
| imagecopyresampled | The return type is true now; previously, it was bool. | |
| imagedestroy | This function has been deprecated. | |
| ldap_connect | Calling ldap_connect with Oracle wallet arguments is deprecated. Oracle LDAP (Oracle Instant Client) support is deprecated as of PHP 8.5.0. | |
| ldap_connect_wallet | This function has been deprecated. Oracle LDAP (Oracle Instant Client) support is deprecated in PHP 8.5.0. | |
| ldap_get_option | ldap is now nullable. A ValueError is now thrown when passing an invalid option. | |
| ldap_set_option | A ValueError is now thrown when passing an invalid option. | |
| libxml_set_external_entity_loader | The return type is true now; previously, it was bool. | |
| list | Destructuring a non-array value (other than null) now emits an E_WARNING. | |
| When 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_start | Trying 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_encrypt | cipher_algo is now of type int or string. Previously, it was of type int. | |
| openssl_pkey_derive | The parameter key_length is now deprecated. | |
| openssl_private_decrypt | The optional parameter digest_algo has been added. | |
| openssl_public_encrypt | The optional parameter digest_algo has been added. | |
| openssl_sign | The optional parameter padding has been added. | |
| openssl_verify | The optional parameter padding has been added. | |
| ord | Passing a string which is not a single byte is now deprecated. | |
| pcntl_exec | A 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_waitid | resource_usage was added. | |
| pg_connect | A ValueError is now thrown if connection_string contains null bytes. | |
| pg_copy_from | rows is now of type iterable. Previously, it was of type array. | |
| posix_fpathconf | Now sets last_error to EBADF and raises an E_WARNING when an invalid file descriptor is encountered. | |
| posix_isatty | Now raises an E_WARNING when an invalid file_descriptor is encountered. | |
| posix_kill | Now throws a ValueError when process_id is lower or greater than what the platform supports (signed integer or long range). | |
| posix_setpgid | Now throws a ValueError when process_id or process_group_id is lower than zero or greater than what the platform supports. | |
| posix_setrlimit | Now throws a ValueError when hard_limit or soft_limit is lower than -1, or when soft_limit is greater than hard_limit. | |
| posix_ttyname | last_error is now set to EBADF when an invalid file_descriptor is encountered. | |
| printf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| readdir | Using null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided. | |
| readgzfile | use_include_path is now of type bool. Previously, it was of type int. | |
| readline_add_history | The return type is true now; previously, it was bool. | |
| readline_callback_handler_install | The return type is true now; previously, it was bool. | |
| readline_clear_history | The return type is true now; previously, it was bool. | |
| register_tick_function | Tick 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. | |
| rewinddir | Using null for dir_handle is now deprecated. Instead, the last opened directory handle should be explicitly provided. | |
| session_get_cookie_params | The "partitioned" entry was added in the returned array. | |
| session_set_cookie_params | The "partitioned" entry was added in the lifetime_or_options array. If set to true, the cookie will be marked as Partitioned (CHIPS). | |
| session_start | Now 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_close | If $_SESSION contains a key with a pipe character (|), an E_WARNING is now emitted. Previously, this would silently fail to write the session data. | |
| setcookie | The "partitioned" entry was added in the options array. If set to true, the cookie will be marked as Partitioned (CHIPS). | |
| setlocale | Passing an integer 0 as the locales argument is no longer supported and now throws a TypeError. | |
| setrawcookie | The "partitioned" entry was added in the options array. If set to true, the cookie will be marked as Partitioned (CHIPS). | |
| shm_detach | The return type is true now; previously, it was bool. | |
| snmp2_get | Now 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_set | Now 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_get | Now 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_set | Now 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. | |
| snmpget | Now 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. | |
| snmpset | Now 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_lookup | Now 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_bind | Now throws a ValueError when port is lower than 0 or greater than 65535. | |
| socket_create | Now supports creating AF_PACKET family sockets. | |
| socket_create_listen | Now throws a ValueError when port is lower than 0 or greater than 65535. | |
| socket_getsockname | Now retrieves the interface index and its string representation when used on an AF_PACKET family socket. | |
| socket_sendto | Now throws a ValueError when port is lower than 0 or greater than 65535. | |
| socket_set_option | Now 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_unregister | Passing 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. | |
| sprintf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| vfprintf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| vprintf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| vsprintf | A formatter that does not specify a precision now correctly treats it as a precision of 0, instead of incorrectly resetting the precision. | |
| xml_parser_free | This function has been deprecated. | |
| IntlListFormatter::__construct | The class was added. | |
| Locale::isRightToLeft | Added Locale::isRightToLeft. | |
| mysqli::__construct | Calling the constructor on an already-constructed object now throws an Error. | |
| Pdo\Pgsql::copyFromArray | rows now also accepts a Traversable; previously only an array was accepted. | |
| PDO::__construct | The uri: DSN scheme is now deprecated. | |
| PDO::pgsqlCopyFromArray | The rows parameter now also accepts a Traversable; previously only an array was accepted. | |
| PDO::quote | When 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::fetchAll | Using 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::setAttribute | When using the Firebird driver, a ValueError is now thrown if the cursor name set via PDO::ATTR_CURSOR_NAME is too long. | |
| PDOStatement::setFetchMode | The 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::setFetchMode | Calling this method during a call to PDOStatement::fetch, PDOStatement::fetchObject, or PDOStatement::fetchAll now throws an Error. | |
| ReflectionClass::getConstant | Calling ReflectionClass::getConstant for constants that do not exist has been deprecated. | |
| ReflectionConstant::getAttributes | This method was introduced. | |
| ReflectionMethod::setAccessible | This method has been deprecated, as it no longer has an effect. | |
| ReflectionProperty::getDefaultValue | Calling ReflectionProperty::getDefaultValue for properties without default values has been deprecated. | |
| ReflectionProperty::getMangledName | This method was introduced. | |
| ReflectionProperty::setAccessible | This method has been deprecated, as it no longer has an effect. | |
| SimpleXMLElement::xpath | If 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::__doRequest | The optional parameter uriParserClass has been added. | |
| SoapFault::__construct | The optional parameter lang has been added in order to be compliant with the SOAP 1.2 specification. | |
| SoapServer::fault | The optional parameter lang has been added in order to be compliant with the SOAP 1.2 specification. | |
| SplFileObject::fwrite | length is now nullable. | |
| SplObjectStorage::attach | This method has been deprecated in favor of SplObjectStorage::offsetSet. | |
| SplObjectStorage::contains | This method has been deprecated in favor of SplObjectStorage::offsetExists. | |
| SplObjectStorage::detach | This method has been deprecated in favor of SplObjectStorage::offsetUnset. | |
| SQLite3Stmt::busy | This method was added. | |
| tidy::__construct | Now 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::parseFile | Now 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::parseString | Now 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::getParameter | The 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::removeParameter | The 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::setParameter | The 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.0 | DateInterval::createFromDateString | Now has a tentative return type of DateInterval. Previously it was DateIntervalfalse. |
| DatePeriod::__construct | The signature using isostr has been deprecated, use DatePeriod::createFromISO8601String instead. | |
| DateTime::modify | Now has a tentative return type of DateTime. Previously it was DateTimefalse. | |
| DateTimeImmutable::modify | Now has a tentative return type of DateTimeImmutable. Previously it was DateTimeImmutablefalse. | |
| DOMDocument::registerNodeClass | DOMDocument::registerNodeClass now has a tentative return of true. | |
| DOMImplementation::createDocument | The function now has the tentative return type DOMDocument. | |
| DOMXPath::registerPhpFunctions | It 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. | ||
| bcpow | Negative powers of 0 previously returned 0, but now throw a DivisionByZeroError exception. | |
| bind_textdomain_codeset | Now throws a ValueError if domain is the empty string. | |
| bind_textdomain_codeset | codeset is optional now. Previously, the parameter always had to be specified. | |
| bindtextdomain | directory is optional now. Previously, the parameter always had to be specified. | |
| curl_getinfo | Introduced CURLINFO_POSTTRANSFER_TIME_T constant and posttransfer_time_us (Curl 8.10.0 or later). | |
| curl_multi_select | Now throws a ValueError if timeout is less than 0 or greater than PHP_INT_MAX. | |
| curl_setopt | CURLOPT_DNS_USE_GLOBAL_CACHE no longer has any effect, and enabling it on thread-safe PHP builds no longer triggers a warning. | |
| curl_version | features_list added. | |
| dba_close | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_delete | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_exists | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_fetch | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_firstkey | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_insert | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_key_split | Passing null or false to key is now deprecated. | |
| dba_nextkey | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_open | Returns a Dba\Connection instance now; previously, a resource was returned. | |
| dba_optimize | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_popen | Returns a Dba\Connection instance now; previously, a resource was returned. | |
| dba_replace | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| dba_sync | The dba parameter expects a Dba\Connection instance now; previously, a valid dba resource was expected. | |
| debug_zval_dump | debug_zval_dump now indicates whether an array is packed. | |
| dgettext | Now throws a ValueError if domain is the empty string. | |
| dngettext | Now throws a ValueError if domain is the empty string. | |
| exit | exit 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. | |
| exit | A 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. | |
| fgetcsv | Relying on the default value of escape is now deprecated. | |
| flush | Flushing headers without a body will now succeed in FastCGI. | |
| fputcsv | Relying on the default value of escape is now deprecated. | |
| hash_init | Passing options of a wrong type is now deprecated. | |
| hash_update | Now has a return type of true instead of bool. | |
| highlight_string | Return type changed from stringbool to stringtrue. | |
| http_build_query | Prior to PHP 8.4.0, BackedEnum properties of data were converted to objects, rather than their scalar equivalents. | |
| idn_to_ascii | Now throws a ValueError if the domain parameter is empty. | |
| idn_to_ascii | Now throws a ValueError if the variant parameter is not INTL_IDNA_VARIANT_UTS46. | |
| idn_to_utf8 | Now throws a ValueError if the domain parameter is empty. | |
| idn_to_utf8 | Now throws a ValueError if the variant parameter is not INTL_IDNA_VARIANT_UTS46. | |
| imageavif | Now throws a ValueError if quality or speed is invalid. | |
| imagefilter | Now throws a ValueError if sub or plus would cause over-/underflow with the IMG_FILTER_SCATTER filter. | |
| imagejpeg | Now throws a ValueError if quality is invalid. | |
| imagepng | Now throws a ValueError if quality is invalid. | |
| imagescale | Now throws a ValueError if width or height would cause over-/underflow. | |
| imagescale | Now throws a ValueError if mode is invalid. | |
| imagewebp | Now throws a ValueError if quality is invalid. | |
| lcg_value | This function has been deprecated. | |
| ldap_connect | Calling ldap_connect with more than two arguments is now deprecated. | |
| ldap_exop | Using more than 4 parameters has been deprecated, use ldap_exop_sync instead. | |
| libxml_set_streams_context | libxml_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. | |
| long2ip | Return type changed from stringfalse to string. | |
| mb_decode_numericentity | The mb_decode_numericentity function now throws a ValueError if map contains any value that cannot be implicitly converted to int. | |
| mb_encode_numericentity | The mb_encode_numericentity function now throws a ValueError if map contains any value that cannot be implicitly converted to int. | |
| mb_http_output | mb_http_output now throws a ValueError if encoding contains null bytes. | |
| mb_strcut | The behavior is more consistent now on invalid UTF-8 and UTF-16 strings. | |
| odbc_autocommit | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_binmode | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_close | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_columnprivileges | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_columns | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_commit | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_connect | This function returns a Odbc\Connection instance now; previously, a resource was returned. | |
| odbc_connect | user and password are now nullable, they are now also optional and default to null. | |
| odbc_connect | Previously, 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_connect | Previously, 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_cursor | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_data_source | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_error | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_errormsg | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_exec | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_exec | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_execute | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_fetch_array | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_fetch_array | row is now nullable, and its default value changed from -1 to null, consistent with odbc_fetch_row. | |
| odbc_fetch_into | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_fetch_into | row is now nullable, and its default value changed from 0 to null, consistent with odbc_fetch_row. | |
| odbc_fetch_object | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_fetch_object | row is now nullable, and its default value changed from -1 to null, consistent with odbc_fetch_row. | |
| odbc_fetch_row | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_fetch_row | An E_WARNING is now emitted when row is equal or less than zero. | |
| odbc_field_len | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_field_name | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_field_num | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_field_scale | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_field_type | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_foreignkeys | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_foreignkeys | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_free_result | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_gettypeinfo | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_gettypeinfo | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_longreadlen | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_next_result | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_num_fields | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_num_rows | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_pconnect | This function returns a Odbc\Connection instance now; previously, a resource was returned. | |
| odbc_pconnect | user and password are now nullable, they are now also optional and default to null. | |
| odbc_pconnect | Previously, 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_pconnect | Previously, 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_prepare | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_prepare | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_primarykeys | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_primarykeys | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_procedurecolumns | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_procedurecolumns | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_procedures | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_procedures | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_result | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_result_all | statement expects an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_rollback | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_setoption | odbc expects an Odbc\Connection or an Odbc\Result instance now; previously, a resource was expected. | |
| odbc_specialcolumns | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_specialcolumns | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_statistics | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_statistics | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_tableprivileges | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_tableprivileges | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| odbc_tables | odbc expects an Odbc\Connection instance now; previously, a resource was expected. | |
| odbc_tables | This function returns an Odbc\Result instance now; previously, a resource was returned. | |
| openssl_csr_new | The distinguished_names associative array now supports arrays as values, allowing multiple values to be specified for a single attribute. | |
| openssl_csr_new | The extra_attributes parameter now correctly sets the CSR attributes, rather than modifying the subject's Distinguished Name as it previously did incorrectly. | |
| openssl_csr_sign | The serial_hex parameter is added. | |
| openssl_password_hash | Function added. | |
| openssl_password_verify | Function added. | |
| openssl_pkey_get_details | Added support for Curve25519 and Curve448 based keys. Specifically the x25519, ed25519, x448 and ed448 fields have been introduced. | |
| openssl_pkey_new | Added support for Curve25519 and Curve448 based keys with the introduction of the x25519, ed25519, x448, and ed448 fields. | |
| openssl_x509_parse | Parsing certificate with no seconds in UTCTime is no longer allowed for any OpenSSL version. It was already disallowed for OpenSSL version 3.3+. | |
| password_hash | The default value of the cost option of the PASSWORD_BCRYPT algorithm was increased from 10 to 12. | |
| pcntl_sigprocmask | A ValueError is thrown if signals is empty, unless mode is SIG_SETMASK. | |
| pcntl_sigprocmask | A TypeError is thrown if signals value is not an int. | |
| pcntl_sigprocmask | A ValueError is thrown if signals value is invalid. | |
| pcntl_sigprocmask | A ValueError is thrown if mode value is not SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK. | |
| pcntl_sigtimedwait | On failure, false is now returned; previously -1 was returned in some cases. | |
| pcntl_sigtimedwait | A ValueError is thrown if signals is empty. | |
| pcntl_sigtimedwait | A TypeError is thrown if signals value is not an int. | |
| pcntl_sigtimedwait | A ValueError is thrown if signals value is invalid. | |
| pcntl_sigtimedwait | A ValueError is thrown if seconds value is less than 0. | |
| pcntl_sigtimedwait | A ValueError is thrown if nanoseconds value is not between 0 and 1e9. | |
| pcntl_sigtimedwait | A ValueError is thrown if both seconds and nanoseconds values are 0. | |
| pcntl_sigwaitinfo | On failure, false is now returned; previously -1 was returned in some cases. | |
| pcntl_sigwaitinfo | A ValueError is thrown if signals is empty. | |
| pcntl_sigwaitinfo | A TypeError is thrown if signals value is not an int. | |
| pcntl_sigwaitinfo | A ValueError is thrown if signals value is invalid. | |
| pg_fetch_result | The 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_null | The 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_prtlen | The 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_select | conditions is now optional. | |
| php_uname | Throws a ValueError when an invalid mode is specified. | |
| posix_isatty | Set errno (error number) to EBADF when the file descriptor/stream passed is invalid. | |
| pow | Raising 0 to a negative exponent is now deprecated. | |
| print_r | Return type changed from stringbool to stringtrue. | |
| round | Four new rounding modes have been added. | |
| round | Now throws a ValueError if mode is invalid. | |
| session_set_save_handler | Calling session_set_save_handler with more than two arguments is now deprecated. Use the two argument signature instead. | |
| simplexml_import_dom | Added support for Dom\Document. | |
| simplexml_import_dom | This function now throws a TypeError instead of a ValueError when passed a non-XML or non-HTML node. | |
| socket_create_listen | The default value of backlog is now SOMAXCONN. Previously it was 128. | |
| sodium_crypto_aead_aes256gcm_decrypt | This function is now also defined on aarch64. Previously it was only defined on x86 and x86_64. | |
| sodium_crypto_aead_aes256gcm_encrypt | This function is now also defined on aarch64. Previously it was only defined on x86 and x86_64. | |
| sodium_crypto_aead_aes256gcm_is_available | This 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_keygen | This function is now also defined on aarch64. Previously it was only defined on x86 and x86_64. | |
| str_getcsv | Relying on the default value of escape is now deprecated. | |
| str_getcsv | Now throws a ValueError if separator, enclosure, or escape is invalid. This mimics the behavior of fgetcsv and fputcsv. | |
| strcspn | Prior 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_append | bucket expects a StreamBucket instance now; previously, an stdClass was expected. | |
| stream_bucket_make_writeable | This function returns a StreamBucket instance now; previously, an stdClass was returned. | |
| stream_bucket_new | This function returns a StreamBucket instance now; previously, an stdClass was returned. | |
| stream_bucket_prepend | bucket expects a StreamBucket instance now; previously, an stdClass was expected. | |
| stream_context_set_option | The alternative 2-parameter signature is now deprecated. Use stream_context_set_options instead. | |
| tempnam | The name of files created by tempnam are now 13 bytes longer. The total length is still platform-dependent. | |
| textdomain | Now throws a ValueError if domain is the empty string. | |
| textdomain | domain is optional now. Previously, the parameter always had to be specified. | |
| trigger_error | Passing E_USER_ERROR as the error_level is now deprecated. Throw an Exception or call exit instead. | |
| trigger_error | The function now has a return type of true instead of bool. | |
| unserialize | Now throws TypeError and ValueError if the allowed_classes element of options is neither an array of class names nor a bool. | |
| unserialize | Unserializing strings using the uppercase "S" tag is now deprecated; use the lowercase "s" tag instead. | |
| xml_parser_set_option | Added the option XML_OPTION_PARSE_HUGE. | |
| xml_set_character_data_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_default_handler | Passing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler. | |
| xml_set_default_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_element_handler | Passing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler. | |
| xml_set_element_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_end_namespace_decl_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_external_entity_ref_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_notation_decl_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_object | This function is now deprecated, instead pass proper callable values to xml_set_ | |
| xml_set_processing_instruction_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_start_namespace_decl_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| xml_set_unparsed_entity_decl_handler | Passing 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_handler | The validity of handler as a callable is now checked when setting the handler instead of checking when calling it. | |
| IntlCalendar::set | This had been deprecated in favor of the methods IntlCalendar::setDate and IntlCalendar::setDateTime. | |
| IntlDateFormatter::create | A ValueError is thrown if locale is invalid. | |
| IntlGregorianCalendar::__construct | This had been deprecated in favor of the methods IntlGregorianCalendar::createFromDate and IntlGregorianCalendar::createFromDateTime. | |
| mysqli::kill | Both mysqli::kill and mysqli_kill are now deprecated. Use the KILL SQL command instead. | |
| mysqli::ping | Both 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::query | When 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::refresh | Both mysqli::refresh and mysqli_refresh are now deprecated. Use FLUSH SQL commands instead. | |
| mysqli::store_result | Passing the mode parameter is now deprecated. The parameter has had no effect as of PHP 8.1.0. | |
| NumberFormatter::create | A ValueError is thrown if locale is invalid. | |
| Pdo\Sqlite::createCollation | A TypeError is now thrown if the callback does not return an int; previously the returned value was cast to int. | |
| PDO::getAttribute | It is now possible to fetch the value of the PDO::ATTR_STRINGIFY_FETCHES attribute. | |
| PDO::getAttribute | The 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::setFetchMode | The return type is true now; previously, it was bool. | |
| Phar::setAlias | Phar::setAlias now has a tentative return of true. | |
| Phar::setDefaultStub | Phar::setDefaultStub now has a tentative return of true. | |
| Phar::setStub | The return type is true now; previously, it was bool. | |
| PharData::setStub | The return type is true now; previously, it was bool. | |
| PDO_ODBC DSN | When 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 DSN | Changed 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::__toString | The attached doc comment is now included. | |
| ReflectionGenerator::getFunction | ReflectionGenerator::getFunction may now be called after the generator finished executing. | |
| ReflectionProperty::__toString | The attached doc comment is now included. | |
| ResourceBundle::get | A 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::addFunction | Passing an int to SoapServer::addFunction, including SOAP_FUNCTIONS_ALL, has been deprecated. | |
| SoapServer::setPersistence | SOAP_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::__construct | An 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::fgetcsv | Relying on the default value of escape is now deprecated. | |
| SplFileObject::fputcsv | Relying on the default value of escape is now deprecated. | |
| SplFileObject::setCsvControl | Relying on the default value of escape is now deprecated. | |
| SplFixedArray::setSize | SplFixedArray::setSize now has a tentative return of true. | |
| SplFixedArray::__wakeup | This method is now deprecated, use SplFixedArray::__unserialize instead. | |
| SplHeap::insert | SplHeap::insert now has a tentative return of true. | |
| SplHeap::recoverFromCorruption | SplHeap::recoverFromCorruption now has a tentative return of true. | |
| SplPriorityQueue::insert | SplPriorityQueue::insert now has a tentative return of true. | |
| SplPriorityQueue::recoverFromCorruption | SplPriorityQueue::recoverFromCorruption now has a tentative return of true. | |
| tidy::__construct | Failures when executing the constructor now throw instead of silently creating an unusable object. | |
| XMLReader::open | Passing an invalid encoding will now throw a ValueError. | |
| XMLReader::XML | Passing an invalid encoding will now throw a ValueError. | |
| XMLWriter::startDocument | Passing an encoding containing null bytes will now throw a ValueError. | |
| XSLTProcessor::importStylesheet | Added support for Dom\Document. | |
| XSLTProcessor::importStylesheet | Now throws a TypeError instead of a ValueError if stylesheet is not an XML object. | |
| XSLTProcessor::registerPHPFunctions | Invalid callback names now throws a ValueError. Passing a non-callable entry now throws a TypeError. | |
| XSLTProcessor::registerPHPFunctions | It is now possible to use callables for callbacks when using functions with array entries. | |
| XSLTProcessor::setParameter | Now throws a ValueError if any of the arguments contain null bytes instead of silently truncating. | |
| XSLTProcessor::setParameter | It 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::transformToDoc | Now throws an Error if the callback cannot be invoked, instead of emitting a warning. | |
| XSLTProcessor::transformToDoc | Added support for Dom\Document. | |
| XSLTProcessor::transformToUri | Now throws an Error if the callback cannot be invoked, instead of emitting a warning. | |
| XSLTProcessor::transformToUri | Added support for Dom\Document. | |
| XSLTProcessor::transformToXml | Now throws an Error if the callback cannot be invoked, instead of emitting a warning. | |
| XSLTProcessor::transformToXml | Added support for Dom\Document. | |
| 8.3.5 | restore_exception_handler | The 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_handler | The 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.2 | mb_strstr | On 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_substr | On 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.0 | DateInterval::__construct | Now throws DateMalformedIntervalStringException instead of Exception. |
| DateInterval::createFromDateString | DateInterval::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::__construct | Now throws DateMalformedPeriodStringException instead of Exception. | |
| DateTime::__construct | Now throws DateMalformedStringException if an invalid string is passed, instead of Exception. | |
| DateTimeInterface::getTimestamp | The out-of-range exception is now DateRangeError. | |
| DateTime::modify | DateTime::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::sub | Now throws a DateInvalidOperationException with DateTime::sub, instead of a warning when an unsupported operation is attempted. date_sub has not been changed. | |
| DateTimeImmutable::__construct | Now throws DateMalformedStringException if an invalid string is passed, instead of Exception. | |
| DateTimeImmutable::modify | DateTimeImmutable::modify now throws DateMalformedStringException if an invalid string is passed. Previously, it returned false, and a warning was emitted. | |
| DateTimeImmutable::sub | Now throws a DateInvalidOperationException instead of a warning when an unsupported operation is attempted. | |
| DateTimeZone::__construct | Invalid values now return a DateInvalidTimeZoneException instead of a generic Exception. | |
| DOMCharacterData::after | Calling 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::after | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMCharacterData::appendData | This function now has a tentative true return type. | |
| DOMCharacterData::before | Calling 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::replaceWith | Calling 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::after | Calling 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::after | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMChildNode::before | Calling 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::replaceWith | Calling 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::append | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMDocument::createAttributeNS | Calling 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::createAttributeNS | Calling 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::load | This function now has a tentative bool return type. | |
| DOMDocument::loadHTML | This function now has a tentative bool return type. | |
| DOMDocument::loadHTMLFile | This function now has a tentative bool return type. | |
| DOMDocument::loadXML | This function now has a tentative bool return type. | |
| DOMDocument::prepend | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMDocument::replaceChildren | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMDocument::saveXML | LIBXML_NOXMLDECL is now supported. | |
| DOMDocumentFragment::append | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMDocumentFragment::prepend | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMDocumentFragment::replaceChildren | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMElement::after | Calling 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::after | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMElement::append | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMElement::before | Calling 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::prepend | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMElement::replaceChildren | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMElement::replaceWith | Calling 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::append | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMParentNode::prepend | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| DOMParentNode::replaceChildren | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR. | |
| FFI::cast | Calling FFI::cast statically is now deprecated. | |
| FFI::cdef | C functions returning void return a PHP null instead of FFI\CType::TYPE_VOID. | |
| FFI::load | FFI::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::new | Calling FFI::new statically is now deprecated. | |
| FFI::type | Calling FFI::type statically is now deprecated. | |
| array_pad | Prior 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_product | Now 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_sum | Now 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. | |
| assert | All assert. INI settings have been deprecated. | |
| assert_options | assert_options is now deprecated. | |
| class_alias | class_alias now supports creating an alias of an internal class. | |
| curl_getinfo | Introduced CURLINFO_CAINFO and CURLINFO_CAPATH. | |
| dba_fetch | Calling dba_fetch with dba as the 3rd argument is now deprecated. | |
| easter_date | On 64-bit systems, the year parameter now accepts values within the range of 1970 to 2,000,000,000. | |
| fgetcsv | An empty string is returned instead of a string with a single null byte for the last field if it contains only an unterminated enclosure. | |
| file | ValueError is thrown for any invalid values of flags. | |
| gc_status | gc_status now returns the following additional fields: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time", and "free_time". | |
| get_class | Calling 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_class | Calling 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_file | The resulting HTML has changed. | |
| highlight_string | The resulting HTML has changed. | |
| imagerotate | The unused ignore_transparent has been completely removed. | |
| ldap_connect | Calling ldap_connect with separate hostname and port is now deprecated. | |
| mb_convert_case | Implemented 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_mimeheader | Underscores are converted to spaces as specified by RFC 2047. | |
| mb_encode_mimeheader | NUL (0) bytes are no longer dropped when encoded using Quoted-Printable encoding, but encoded as =00. | |
| mb_strimwidth | Passing a negative width to mb_strimwidth is now deprecated. | |
| mb_strtolower | Implemented conditional casing rules for the Greek letter sigma. | |
| mt_srand | seed is now nullable. | |
| number_format | Added handling of negative values for decimals. | |
| odbc_autocommit | enable is now nullable. | |
| openssl_pkey_new | Added 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_hash | password_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_convert | Now 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_object | Now 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_result | row is now nullable. | |
| pg_field_is_null | row is now nullable. | |
| pg_field_prtlen | row is now nullable. | |
| pg_insert | Now throws a ValueError error when the specified table is invalid; previously an E_WARNING was emitted. | |
| pg_insert | Now 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_trace | trace_mode has been added. | |
| posix_eaccess | Checks the effective user/group for a file, differing from posix_access which checks from the real user/group. | |
| posix_getrlimit | The optional resource parameter has been added. | |
| posix_isatty | Type error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics. | |
| posix_ttyname | Type error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics. | |
| posix_ttyname | On invalid file_descriptor integer values an E_WARNING is now raised. | |
| proc_close | proc_close now returns the correct exit code even after proc_get_status was called first. Previously, -1 was returned in that case. | |
| proc_get_status | The "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_open | A ValueError will be thrown if command is an array without at least one non-empty element. | |
| range | If 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. | |
| range | An 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. | |
| range | An E_WARNING is now emitted if start or end is a non-numeric string with more than one byte. | |
| range | An E_WARNING is now emitted if start or end is the empty string. | |
| range | If step is a float with no fractional part, it will be interpreted as an int. | |
| range | A ValueError is now thrown if step is negative when producing an increasing range. | |
| range | A ValueError is now thrown if step is not finite. | |
| range | A TypeError is now thrown if start or end is an array, object, or resource. Previously they were implicitly cast to int. | |
| restore_exception_handler | The active exception handler is now unset while it runs. | |
| set_exception_handler | The active exception handler is now unset while it runs, so set_exception_handler called from within a handler reports no previously defined handler. | |
| srand | seed is now nullable. | |
| str_getcsv | An 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_callback | Support for STREAM_NOTIFY_COMPLETED implemented, earlier PHP versions would never trigger this notification. | |
| strrchr | The before_needle parameter was added. | |
| strtok | Now emits E_WARNING when token is not provided. | |
| unserialize | Now emits E_WARNING when the input string has unconsumed data. | |
| unserialize | Now emits E_WARNING when the passed string is not unserializeable; previously E_NOTICE was emitted. | |
| xml_parser_get_option | The function now returns a boolean for boolean options. | |
| xml_parser_set_option | The value parameter now also accepts booleans. The options XML_OPTION_CASE_FOLDING and XML_OPTION_SKIP_WHITE are now boolean options. | |
| IntlBreakIterator::setText | This method now returns false on failure; previously it returns null. | |
| IntlChar::enumCharNames | This method now returns false on failure; previously it returns null. | |
| IntlDateFormatter::setTimeZone | This function now returns true on success; previously it returns null. | |
| mysqli_result::fetch_object | Now throws a ValueError exception when the constructor_args is non-empty with the class not having a constructor; previously an Exception was thrown. | |
| mysqli::poll | Now throws a ValueError exception when neither the read nor error arguments are passed. | |
| Phar::setStub | Calling Phar::setStub with a resource and a length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource)); | |
| ReflectionClass::getStaticProperties | The return type of ReflectionClass::getStaticProperties has been changed to array from ?array. | |
| ReflectionProperty::setValue | Calling this method with a single argument is deprecated, instead use ReflectionProperty::setValue(null, $value) for static properties. | |
| SQLite3::enableExceptions | Calling SQLite3::enableExceptions with enable as false will trigger a E_DEPRECATED warning. | |
| ZipArchive::addFile | ZipArchive::FL_OPEN_FILE_NOW was added. | |
| ZipArchive::addFile | ZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added. | |
| ZipArchive::addGlob | ZipArchive::FL_OPEN_FILE_NOW was added. | |
| ZipArchive::replaceFile | ZipArchive::FL_OPEN_FILE_NOW was added. | |
| ZipArchive::replaceFile | ZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added. | |
| 8.2.9 | DateTimeImmutable::createFromFormat | The (space) specifier now also supports NBSP (U+A0) and NNBSP (U+202F) characters. |
| 8.2.1 | SplFileObject::__toString | Changed 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.0 | ArrayIterator::asort | The return type is true now; previously, it was bool. |
| ArrayIterator::ksort | The return type is true now; previously, it was bool. | |
| ArrayIterator::natcasesort | The return type is true now; previously, it was bool. | |
| ArrayIterator::natsort | The return type is true now; previously, it was bool. | |
| ArrayIterator::uasort | The return type is true now; previously, it was bool. | |
| ArrayIterator::uksort | The return type is true now; previously, it was bool. | |
| ArrayObject::asort | The return type is true now; previously, it was bool. | |
| ArrayObject::ksort | The return type is true now; previously, it was bool. | |
| ArrayObject::natcasesort | The return type is true now; previously, it was bool. | |
| ArrayObject::natsort | The return type is true now; previously, it was bool. | |
| ArrayObject::uasort | The return type is true now; previously, it was bool. | |
| ArrayObject::uksort | The return type is true now; previously, it was bool. | |
| DateInterval::__construct | Only the y to f, invert, and days will be visible, including a new from_string boolean property. | |
| DateInterval::createFromDateString | Only the from_string and date_string properties will be visible when a DateInterval is created with this method. | |
| DatePeriod::__construct | The DatePeriod::INCLUDE_END_DATE constant has been added. | |
| DateTime::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| DateTimeInterface::format | The format characters X and x have been added. | |
| DateTimeImmutable::createFromFormat | The X and x format specifiers have been added. | |
| DateTimeImmutable::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| DateTimeImmutable::getLastErrors | Before 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::__construct | Prior to PHP 8.2.0, FilesystemIterator::SKIP_DOTS was always set and could not be removed. | |
| array_walk | The return type is true now; previously, it was bool. | |
| array_walk_recursive | The return type is true now; previously, it was bool. | |
| arsort | The return type is true now; previously, it was bool. | |
| asort | The return type is true now; previously, it was bool. | |
| curl_getinfo | Introduced CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER. | |
| curl_multi_setopt | Introduced CURLMOPT_MAX_CONCURRENT_STREAMS. | |
| date_parse_from_format | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| dba_fetch | dba_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_open | flags is added. | |
| dba_open | handler is now nullable. | |
| dba_popen | flags is added. | |
| getimagesize | Now 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. | |
| idate | Adds the N (ISO-8601 day of the week) and o (ISO-8601 year) format characters. | |
| iterator_count | The type of iterator has been widened from Traversable to Traversablearray. | |
| iterator_to_array | The type of iterator has been widened from Traversable to Traversablearray. | |
| krsort | The return type is true now; previously, it was bool. | |
| krsort | This function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules. | |
| ksort | The return type is true now; previously, it was bool. | |
| ksort | This function now does numeric string comparison under SORT_REGULAR using the standard PHP 8 rules. | |
| lcfirst | Case conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted. | |
| mb_convert_encoding | mb_convert_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit". | |
| mb_convert_kana | A ValueError is now thrown if the combination of different modes is invalid. | |
| mb_detect_encoding | mb_detect_encoding will no longer return the following non text encodings: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" and "8 bit". | |
| natcasesort | The return type is true now; previously, it was bool. | |
| natsort | The return type is true now; previously, it was bool. | |
| openlog | The function now always returns true. Previously it returned false on failure. | |
| pg_close | The return type is true now; previously, it was bool. | |
| pg_untrace | The return type is true now; previously, it was bool. | |
| random_bytes | In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown. | |
| random_int | In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown. | |
| rsort | The return type is true now; previously, it was bool. | |
| setcookie | The 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_print | The return type is true now; previously, it was bool. | |
| snmp_set_oid_output_format | The return type is true now; previously, it was bool. | |
| snmp_set_quick_print | The return type is true now; previously, it was bool. | |
| snmp_set_valueretrieval | The return type is true now; previously, it was bool. | |
| sort | The return type is true now; previously, it was bool. | |
| str_ireplace | Case 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_split | If string is empty an empty array is now returned. Previously an array containing a single empty string was returned. | |
| strcasecmp | This 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. | |
| strcmp | This 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. | |
| stripos | Case 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. | |
| stristr | Case 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. | |
| strnatcasecmp | This 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. | |
| strnatcmp | This 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. | |
| strncasecmp | This 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. | |
| strncmp | This 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. | |
| strripos | Case 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. | |
| strtolower | Case conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted. | |
| strtoupper | Case conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted. | |
| substr_compare | This 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. | |
| uasort | The return type is true now; previously, it was bool. | |
| ucfirst | Case conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted. | |
| ucwords | Case conversion no longer depends on the locale set with setlocale. Only ASCII characters will be converted. | |
| uksort | The return type is true now; previously, it was bool. | |
| usort | The return type is true now; previously, it was bool. | |
| utf8_decode | This function has been deprecated. | |
| utf8_encode | This function has been deprecated. | |
| var_export | Exported class names are now fully qualified; previously, the leading backslash was omitted. | |
| IntlCalendar::clear | The return type is true now; previously, it was bool. | |
| IntlCalendar::set | The return type is true now; previously, it was bool. | |
| IntlCalendar::setFirstDayOfWeek | The return type is true now; previously, it was bool. | |
| IntlCalendar::setLenient | The return type is true now; previously, it was bool. | |
| IntlCalendar::setRepeatedWallTimeOption | The return type is true now; previously, it was bool. | |
| IntlCalendar::setSkippedWallTimeOption | The return type is true now; previously, it was bool. | |
| ReflectionEnum::getBackingType | The return type is now declared as ?ReflectionNamedType. Previously, ?ReflectionType was declared. | |
| 8.1.14 | SplFileObject::__toString | Changed 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.8 | DateTime::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. |
| DateTimeImmutable::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| date_parse_from_format | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| 8.1.0 | DateTime::setTime | The 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::setTime | The 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::getTransitions | The default value of timestampEnd has been changed to 2147483647. Previously, it was PHP_INT_MAX. | |
| DirectoryIterator::key | When the iterator is uninitialized, an Error is thrown now. Previously, the method returned false. | |
| DOMDocument::createComment | In case of an error, a DomException is thrown now. Previously, false was returned. | |
| DOMDocument::createDocumentFragment | In case of an error, a DomException is thrown now. Previously, false was returned. | |
| DOMDocument::createTextNode | In case of an error, a DomException is thrown now. Previously, false was returned. | |
| current | Calling 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_sunrise | This function has been deprecated in favor of date_sun_info. | |
| date_sunset | This function has been deprecated in favor of date_sun_info. | |
| dba_popen | handler is now nullable. | |
| define | value can now be an object. | |
| end | Calling 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_imagetype | Added AVIF support. | |
| finfo_buffer | The finfo parameter expects an finfo instance now; previously, a resource was expected. | |
| finfo_close | This function is a NOP now. | |
| finfo_close | The finfo parameter expects an finfo instance now; previously, a resource was expected. | |
| finfo_file | The finfo parameter expects an finfo instance now; previously, a resource was expected. | |
| finfo_open | Returns an finfo instance now; previously, a resource was returned. | |
| finfo_set_flags | The finfo parameter expects an finfo instance now; previously, a resource was expected. | |
| fputcsv | The optional eol parameter has been added. | |
| ftp_alloc | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_append | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_cdup | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_chdir | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_chmod | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_close | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_connect | Returns an FTP\Connection instance now; previously, a resource was returned. | |
| ftp_delete | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_exec | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_fget | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_fput | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_get | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_get_option | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_login | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_mdtm | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_mkdir | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_mlsd | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nb_continue | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nb_fget | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nb_fput | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nb_get | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nb_put | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_nlist | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_pasv | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_put | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_pwd | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_raw | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_rawlist | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_rename | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_rmdir | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_set_option | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_site | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_size | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| ftp_ssl_connect | Returns an FTP\Connection instance now; previously, a resource was returned. | |
| ftp_systype | The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected. | |
| get_html_translation_table | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. | |
| gmp_init | Support 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. | |
| hash | The options parameter has been added. | |
| hash_algos | Support for MurmurHash3 and xxHash algorithms has been added. | |
| hash_file | The options parameter has been added. | |
| hash_init | The options parameter has been added. | |
| html_entity_decode | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. | |
| htmlentities | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. | |
| htmlspecialchars | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. | |
| htmlspecialchars_decode | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. | |
| imagechar | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imagecharup | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imagefilledpolygon | The parameter num_points has been deprecated. | |
| imagefontheight | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imagefontwidth | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imageloadfont | Returns an GdFont instance now; previously, an int was returned. | |
| imageopenpolygon | The parameter num_points has been deprecated. | |
| imagepolygon | The parameter num_points has been deprecated. | |
| imagestring | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imagestringup | The font parameter now accepts both an GdFont instance and an int; previously only int was accepted. | |
| imagetypes | IMG_AVIF added. | |
| ini_set | value now accepts any scalar type (including null). Previously, only string values were accepted. | |
| json_last_error | JSON_ERROR_NON_BACKED_ENUM was added. | |
| key | Calling 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_add | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_add_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_add_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_bind | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_bind_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_bind_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_compare | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_connect | Returns an LDAP\Connection instance now; previously, a resource was returned. | |
| ldap_count_entries | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_count_entries | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_count_references | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_count_references | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_delete | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_delete_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_delete_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_errno | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_error | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_exop | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_exop_passwd | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_exop_refresh | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_exop_whoami | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_first_attribute | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_first_attribute | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_first_entry | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_first_entry | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_first_entry | Returns an LDAP\ResultEntry instance now; previously, a resource was returned. | |
| ldap_free_result | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_get_attributes | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_attributes | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_get_dn | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_dn | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_get_entries | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_entries | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_get_option | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_values | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_values | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_get_values_len | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_get_values_len | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_list | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_list | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_mod_add | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_del | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_replace | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_modify_batch | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_add_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_add_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_mod_del_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_del_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_mod_replace_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_mod_replace_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_next_attribute | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_next_attribute | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_next_entry | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_next_entry | The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry resource was expected. | |
| ldap_next_entry | Returns an LDAP\ResultEntry instance now; previously, a resource was returned. | |
| ldap_parse_exop | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_parse_exop | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_parse_result | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_parse_result | The result parameter expects an LDAP\Result instance now; previously, a valid ldap result resource was expected. | |
| ldap_read | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_read | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_rename | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_rename_ext | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_rename_ext | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_sasl_bind | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_search | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_search | Returns an LDAP\Result instance now; previously, a resource was returned. | |
| ldap_set_option | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_set_rebind_proc | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| ldap_unbind | The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link resource was expected. | |
| mb_check_encoding | Calling this function with null as value or without argument is deprecated. | |
| mhash | This function has been deprecated. Use the hash_*() functions instead. | |
| mhash_count | This function has been deprecated. Use the hash_*() functions instead. | |
| mhash_get_block_size | This function has been deprecated. Use the hash_*() functions instead. | |
| mhash_get_hash_name | This function has been deprecated. Use the hash_*() functions instead. | |
| mhash_keygen_s2k | This function has been deprecated. Use the hash_*() functions instead. | |
| next | Calling 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_all | This function has been deprecated. | |
| openssl_cms_encrypt | The 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_decrypt | tag is now nullable. | |
| openssl_pkcs7_encrypt | The 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_rows | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_cancel_query | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_client_encoding | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_close | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_connect | Returns an PgSql\Connection instance now; previously, a resource was returned. | |
| pg_connect_poll | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_connection_busy | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_connection_reset | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_connection_status | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_consume_input | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_convert | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_copy_from | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_copy_to | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_dbname | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_delete | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_end_copy | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_escape_bytea | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_escape_identifier | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_escape_literal | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_escape_string | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_execute | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_execute | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_fetch_all | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_all_columns | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_array | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_assoc | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_object | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_result | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_fetch_row | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_is_null | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_name | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_num | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_prtlen | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_size | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_table | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_type | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_field_type_oid | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_flush | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_free_result | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_get_notify | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_get_pid | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_get_result | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_get_result | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_host | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_insert | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_insert | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_last_error | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_last_notice | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_last_oid | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_lo_close | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_create | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_lo_export | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_lo_import | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_lo_open | Returns an PgSql\Lob instance now; previously, a resource was returned. | |
| pg_lo_open | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_lo_read | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_read_all | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_seek | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_tell | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_truncate | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_lo_unlink | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_lo_write | The lob parameter expects an PgSql\Lob instance now; previously, a resource was expected. | |
| pg_meta_data | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_num_fields | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_num_rows | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_options | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_parameter_status | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_pconnect | Returns a PgSql\Connection instance now; previously, a resource was returned. | |
| pg_ping | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_port | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_prepare | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_prepare | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_put_line | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_query | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_query | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_query_params | Returns an PgSql\Result instance now; previously, a resource was returned. | |
| pg_query_params | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_result_error | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_result_error_field | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_result_seek | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_result_status | The result parameter expects an PgSql\Result instance now; previously, a resource was expected. | |
| pg_select | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_send_execute | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_send_prepare | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_send_query | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_send_query_params | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_set_client_encoding | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_set_error_verbosity | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_socket | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_trace | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_transaction_status | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_tty | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_untrace | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_update | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| pg_version | The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected. | |
| prev | Calling 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. | |
| reset | Calling 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_get | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| snmp3_getnext | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| snmp3_real_walk | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| snmp3_set | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| snmp3_walk | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| stream_select | microseconds is now nullable. | |
| strptime | This function has been deprecated. Use date_parse_from_format instead (for locale-independent parsing), or IntlDateFormatter::parse (for locale-dependent parsing) | |
| IntlDateFormatter::create | Parameters dateType and timeType are now optional. | |
| MultipleIterator::current | A RuntimeException is now thrown if MultipleIterator::current is called on an invalid iterator. Previously, false was returned. | |
| MultipleIterator::key | A RuntimeException is now thrown if MultipleIterator::key is called on an invalid iterator. Previously, false was returned. | |
| mysqli_driver::$report_mode | The default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Previously, it was MYSQLI_REPORT_OFF. | |
| mysqli_result::fetch_all | Now also available when linking against libmysqlclient. | |
| mysqli_stmt::execute | The optional params parameter has been added. | |
| mysqli_stmt::next_result | Now also available when linking against libmysqlclient. | |
| mysqli::__construct | mysqli::connect now returns true instead of null on success. | |
| mysqli::$client_info | Calling 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_info | The object-oriented style mysqli::get_client_info has been deprecated. | |
| mysqli::init | The object-oriented style mysqli::init method has been deprecated. Replace calls to parent::init with parent::__construct. | |
| Phar::buildFromDirectory | Phar::buildFromDirectory no longer returns false. | |
| Phar::buildFromIterator | Phar::buildFromIterator no longer returns false. | |
| PharData::buildFromDirectory | PharData::buildFromDirectory no longer returns false. | |
| PharData::buildFromIterator | PharData::buildFromIterator no longer returns false. | |
| ReflectionFunctionAbstract::isStatic | This method has been pulled up. Previously, it was only defined in ReflectionMethod. | |
| ReflectionClassConstant::getName | Throws an Error in case the name property has not been initialized. Previously, the method returned false on failure. | |
| ReflectionExtension::__clone | This method is no longer final. | |
| ReflectionFunctionAbstract::__clone | This method is no longer final. | |
| ReflectionMethod::setAccessible | Calling this method has no effect; all methods are invokable by default. | |
| ReflectionParameter::__clone | This method is no longer final. | |
| ReflectionProperty::__clone | This method is no longer final. | |
| ReflectionProperty::getValue | Private 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::setAccessible | Calling this method has no effect; all properties are accessible by default. | |
| ReflectionProperty::setValue | Private 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::__clone | This method is no longer final. | |
| SimpleXMLElement::current | An Error is now thrown if SimpleXMLElement::current is called on an invalid iterator. Previously, null was returned. | |
| SimpleXMLElement::key | An Error is now thrown if SimpleXMLElement::key is called on an invalid iterator. Previously, false was returned. | |
| SNMP::setSecurity | The authentication protocol now accepts "SHA256" and "SHA512" when supported by the Net-SNMP library. | |
| SplFileObject::fputcsv | The optional eol parameter has been added. | |
| SplObjectStorage::current | SplObjectStorage::current now throws an Error exception if the current position is invalid. Previously, false was returned instead. | |
| SQLite3Result::finalize | This method now throws an Error exception if the object is not correct initialized. Previously, it returned false. | |
| SQLite3Stmt::close | This method now throws an Error exception if the object is not correct initialized. Previously, it returned false. | |
| 8.0.21 | DateTime::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. |
| DateTimeImmutable::createFromFormat | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| date_parse_from_format | Now throws ValueError when NULL-bytes are passed into datetime, which previously was silently ignored. | |
| 8.0.5 | imageinterlace | imageinterlace returns a bool now; previously it returned an int (non-zero for interlaced images, zero otherwise). |
| 8.0.3 | DOMDocument::getElementsByTagNameNS | namespace is nullable now. |
| DOMElement::getElementsByTagNameNS | namespace is nullable now. | |
| DOMImplementation::createDocument | namespace is now nullable. | |
| finfo::__construct | magic_database is nullable now. | |
| bind_textdomain_codeset | codeset is nullable now. Previously, it was not possible to retrieve the currently set encoding. | |
| bindtextdomain | directory is nullable now. Previously, it was not possible to retrieve the currently set directory. | |
| finfo_open | magic_database is nullable now. | |
| imagegd | file is now nullable. | |
| imagegd2 | file is now nullable. | |
| SoapClient::__setLocation | location is nullable now. | |
| SoapVar::__construct | typeName, typeNamespace, nodeName,and nodeNamespace are nullable now. | |
| 8.0.0 | CURLFile::__construct | mime_type and posted_filename are nullable now; previously their default was 0. |
| DateInterval::__construct | W can be combined with D. | |
| DateTime::createFromImmutable | The method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTime. | |
| DateTimeInterface::format | The format character p has been added. | |
| DateTimeInterface::getTimestamp | These functions no longer return false on failure. | |
| DateTimeImmutable::createFromMutable | The method returns an instance of the currently invoked class now. Previously, it created a new instance of DateTimeImmutable. | |
| DateTimeZone::listIdentifiers | Prior to this version, false was returned on failure. | |
| Directory::close | No parameter is accepted. Previously, a directory handle could be passed as argument. | |
| Directory::read | No parameter is accepted. Previously, a directory handle could be passed as argument. | |
| Directory::rewind | No parameter is accepted. Previously, a directory handle could be passed as argument. | |
| DirectoryIterator::__construct | Now throws a ValueError if directory is an empty string; previously it threw a RuntimeException. | |
| DOMDocument::load | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMDocument::loadHTML | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMDocument::loadHTMLFile | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMDocument::loadXML | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMImplementation::createDocument | doctype is now nullable. | |
| DOMImplementation::createDocument | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMImplementation::createDocumentType | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| DOMImplementation::hasFeature | Calling this function statically will now throw an Error. Previously, an E_DEPRECATED was raised. | |
| FFI::cdef | lib is nullable now. | |
| FFI::string | size is nullable now; previously, its default was 0. | |
| FilesystemIterator::__construct | Now throws a ValueError if directory is an empty string; previously it threw a RuntimeException. | |
| abs | num no longer accepts internal objects which support numeric conversion. | |
| apache_note | note_value is nullable now. | |
| array_chunk | If 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_column | Objects in columns indicated by index_key parameter will no longer be cast to string and will now throw a TypeError instead. | |
| array_combine | array_combine will now throw a ValueError if the number of elements for each array is not equal; previously this function returned false instead. | |
| array_diff | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_diff_assoc | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_diff_key | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_fill | array_fill now throws a ValueError if count is out of range; previously E_WARNING was raised, and the function returned false. | |
| array_filter | callback is nullable now. | |
| array_filter | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| array_intersect | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_intersect_assoc | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_intersect_key | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_key_exists | The key parameter now accepts bool, float, int, null, resource, and string as arguments. | |
| array_key_exists | Passing an object to the array parameter is no longer supported. | |
| array_map | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| array_rand | array_rand now throws a ValueError if num is out of range; previously an E_WARNING was raised, and the function returned null. | |
| array_rand | array_rand now throws a ValueError if array is empty; previously an E_WARNING was raised, and the function returned null. | |
| array_reduce | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| array_splice | length is nullable now. | |
| array_walk | If callback expects the second or third parameter to be passed by reference, this function will now emit an E_WARNING. | |
| assert | assert 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. | |
| assert | If description is an instance of Throwable, the object is thrown if the assertion fails, regardless of the value of assert.exception. | |
| assert | If description is an instance of Throwable, no user callback is called even if it set. | |
| assert | Declaring a function called assert() inside a namespace is no longer allowed, and issues E_COMPILE_ERROR. | |
| assert_options | If option is not a valid option, a ValueError is now thrown. Previously false was returned. | |
| bcadd | scale is now nullable. | |
| bccomp | scale is now nullable. | |
| bcdiv | scale is now nullable. | |
| bcdiv | Dividing by 0 now throws a DivisionByZeroError exception instead of returning null. | |
| bcmod | scale is now nullable. | |
| bcmod | Dividing by 0 now throws a DivisionByZeroError exception instead of returning null. | |
| bcmul | scale is now nullable. | |
| bcpow | When exponent has a fractional part, it now throws a ValueError instead of truncating. | |
| bcpowmod | scale is now nullable. | |
| bcpowmod | Now throws a ValueError instead of returning false if exponent is a negative value. | |
| bcpowmod | Dividing by 0 now throws a DivisionByZeroError exception instead of returning false. | |
| bcscale | scale is now nullable. | |
| bcsqrt | If num is not a well-formed BCMath numeric string, or less than 0, a ValueError is thrown. Previously, E_WARNING was raised instead. | |
| bcsqrt | scale now needs to be between 0 and 2147483647; previously, negative scales have been silently treated as 0. | |
| bcsqrt | scale is now nullable. | |
| bcsub | scale is now nullable. | |
| bzdecompress | The type of use_less_memory has been changed from int to bool. Previously, the default value was 0. | |
| bzwrite | length is nullable now. | |
| call_user_func_array | args keys will now be interpreted as parameter names, instead of being silently ignored. | |
| ceil | num no longer accepts internal objects which support numeric conversion. | |
| closedir | dir_handle is now nullable. | |
| com_event_sink | sink_interface is nullable now. | |
| com_get_active_object | codepage is nullable now. | |
| compact | If a given string references an unset variable, an E_WARNING level error is now issued. | |
| constant | If the constant is not defined, constant now throws an Error exception; previously an E_WARNING was generated, and null was returned. | |
| convert_cyr_string | Removed this function. | |
| convert_uuencode | Prior to this version, trying to convert an empty string returned false for no particular reason. | |
| count | count will now throw TypeError on invalid countable types passed to the value parameter. | |
| count_chars | Prior to this version, the function returned false on failure. | |
| crypt | The salt is no longer optional. | |
| curl_close | This function is a NOP now. | |
| curl_close | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_copy_handle | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_copy_handle | On success, this function returns a CurlHandle instance now; previously, a resource was returned. | |
| curl_errno | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_error | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_escape | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_exec | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_getinfo | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_getinfo | option is nullable now; previously, the default was 0. | |
| curl_init | On success, this function returns a CurlHandle instance now; previously, a resource was returned. | |
| curl_init | url is nullable now. | |
| curl_multi_add_handle | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_add_handle | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_multi_close | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_errno | The function no longer returns false on failure. | |
| curl_multi_errno | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_exec | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_getcontent | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_multi_info_read | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_init | On success, this function returns a CurlMultiHandle instance now; previously, a resource was returned. | |
| curl_multi_remove_handle | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_remove_handle | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_multi_select | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_multi_setopt | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected. | |
| curl_pause | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_reset | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_setopt | curl_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_setopt | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_setopt_array | curl_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_array | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_share_close | This function is a NOP now. | |
| curl_share_close | share_handle expects a CurlShareHandle instance now; previously, a resource was expected. | |
| curl_share_errno | The function no longer returns false on failure. | |
| curl_share_errno | share_handle expects a CurlShareHandle instance now; previously, a resource was expected. | |
| curl_share_init | This function returns a CurlShareHandle instance now; previously, a resource was returned. | |
| curl_share_setopt | share_handle expects a CurlShareHandle instance now; previously, a resource was expected. | |
| curl_unescape | handle expects a CurlHandle instance now; previously, a resource was expected. | |
| curl_version | The optional age parameter has been removed. | |
| date | timestamp is nullable now. | |
| date_sunrise | latitude, longitude, zenith and utcOffset are nullable now. | |
| date_sunset | latitude, longitude, zenith and utcOffset are nullable now. | |
| define | Passing true to case_insensitive now emits an E_WARNING. Passing false is still allowed. | |
| deflate_add | context expects a DeflateContext instance now; previously, a resource was expected. | |
| deflate_init | On success, this function returns a DeflateContext instance now; previously, a resource was returned. | |
| dir | context is now nullable. | |
| dom_import_simplexml | This function no longer returns null on failure. | |
| easter_date | year is nullable now. | |
| easter_date | A ValueError is now thrown when year is outside the allowed range. Previously, an E_WARNING was raised and the function returned false. | |
| easter_days | year is nullable now. | |
| enchant_broker_describe | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_describe | Prior to this version, the function returned false on failure. | |
| enchant_broker_dict_exists | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_free | This function has been deprecated in favor of unsetting the object. | |
| enchant_broker_free | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_free_dict | This function has been deprecated in favor of unsetting the object. | |
| enchant_broker_free_dict | dictionary expects a EnchantDictionary now; previously, a resource was expected. | |
| enchant_broker_get_dict_path | This function has been deprecated. | |
| enchant_broker_get_dict_path | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_get_error | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_init | On success, this function returns an EnchantBroker instance now; previously, a resource was returned. | |
| enchant_broker_list_dicts | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_list_dicts | Prior to this version, the function returned false on failure. | |
| enchant_broker_request_dict | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_request_dict | On success, this function returns an EnchantDictionary instance now; previously, a resource was returned. | |
| enchant_broker_request_pwl_dict | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_request_pwl_dict | On success, this function returns an EnchantDictionary instance now; previously, a resource was returned. | |
| enchant_broker_set_dict_path | This function has been deprecated. | |
| enchant_broker_set_dict_path | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_broker_set_ordering | broker expects an EnchantBroker instance now; previously, a resource was expected. | |
| enchant_dict_add | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_add_to_session | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_check | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_describe | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_describe | Prior to this version, the function returned false on failure. | |
| enchant_dict_get_error | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_is_added | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_quick_check | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_store_replacement | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| enchant_dict_suggest | dictionary expects an EnchantDictionary instance now; previously, a resource was expected. | |
| error_log | destination and additional_headers are now nullable. | |
| error_reporting | error_level is nullable now. | |
| exec | If command is empty or contains null bytes, exec now throws a ValueError. Previously it emitted an E_WARNING and returned false. | |
| exif_read_data | required_sections is nullable now. | |
| explode | explode will now throw ValueError when separator parameter is given an empty string (""). Previously, explode returned false instead. | |
| ezmlm_hash | Removed this function. | |
| fgetcsv | length is now nullable. | |
| file_get_contents | length is nullable now. | |
| finfo_buffer | context is nullable now. | |
| finfo_file | context is nullable now. | |
| floatval | The error level when converting from object was changed from E_NOTICE to E_WARNING. | |
| floor | num no longer accepts internal objects which support numeric conversion. | |
| fprintf | This function no longer returns false on failure. | |
| fprintf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| fprintf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| fprintf | Throws a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| fprintf | Throws an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| fsockopen | timeout is nullable now. | |
| fwrite | length is nullable now. | |
| get_called_class | Calling this function from outside a class, will now throw an Error. Previously, an E_WARNING was raised and the function returned false. | |
| get_class | Calling 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_methods | The object_or_class parameter now only accepts objects or valid class names. | |
| get_defined_functions | The 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_headers | The associative has been changed from int to bool. | |
| get_magic_quotes_gpc | Removed this function. | |
| get_magic_quotes_runtime | Removed this function. | |
| get_parent_class | The object_or_class parameter now only accepts objects or valid class names. | |
| get_resources | type is nullable now. | |
| getdate | timestamp is nullable now. | |
| getenv | The name is now nullable. | |
| getimagesize | A ValueError is now thrown if filename is empty; previously an E_WARNING was raised and the function returned false. | |
| gmdate | timestamp is nullable now. | |
| gmmktime | hour is no longer optional. If you need a Unix timestamp, use time. | |
| gmmktime | minute, second, month, day and year are nullable now. | |
| gmp_binomial | This function no longer returns false on failure. | |
| gmp_export | This function no longer returns false on failure. | |
| gmp_import | This function no longer returns false on failure. | |
| gmp_random_seed | If seed is invalid, gmp_random_seed now throws a ValueError. Previously it emitted an E_WARNING and returned false. | |
| gmstrftime | timestamp is nullable now. | |
| grapheme_substr | The function now consistently clamps out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases. | |
| gzgets | length is nullable now; previously, the default was 1024. | |
| gzwrite | length is nullable now; previously, the default was 0. | |
| hash | Now throws a ValueError exception if algo is unknown; previously, false was returned and an E_WARNING message was emitted. | |
| hash_hkdf | Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted. | |
| hash_hmac | Now 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_file | Now 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_init | Now 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_pbkdf2 | Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted. | |
| hash_update_file | stream_context is now nullable. | |
| header_remove | name is nullable now. | |
| hebrevc | Removed this function. | |
| html_entity_decode | encoding is nullable now. | |
| htmlentities | encoding is nullable now. | |
| http_build_query | arg_separator is now nullable. | |
| iconv_mime_decode | encoding is nullable now. | |
| iconv_mime_decode_headers | encoding is nullable now. | |
| iconv_strlen | encoding is nullable now. | |
| iconv_strpos | encoding is nullable now. | |
| iconv_strrpos | encoding is nullable now. | |
| iconv_substr | length and encoding are nullable now. | |
| idate | timestamp is nullable now. | |
| ignore_user_abort | enable is nullable now. | |
| imageaffine | clip is now nullable. | |
| imageaffine | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagealphablending | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageantialias | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagearc | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagebmp | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagebmp | The type of compressed is bool now; formerly it was int. | |
| imagechar | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecharup | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorallocate | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorallocatealpha | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorat | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorclosest | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorclosesthwb | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolordeallocate | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorexact | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorexactalpha | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolormatch | image1 and image2 expect GdImage instances now; previously, resources were expected. | |
| imagecolorresolve | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorresolvealpha | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorset | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorsforindex | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolorsforindex | imagecolorsforindex now throws a ValueError exception if color is out of range; previously, false was returned instead. | |
| imagecolorstotal | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolortransparent | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecolortransparent | color is now nullable. | |
| imageconvolution | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecopy | dst_image and src_image expect GdImage instances now; previously, resources were expected. | |
| imagecopymerge | dst_image and src_image expect GdImage instances now; previously, resources were expected. | |
| imagecopymergegray | dst_image and src_image expect GdImage instances now; previously, resources were expected. | |
| imagecopyresampled | dst_image and src_image expect GdImage instances now; previously, resources were expected. | |
| imagecopyresized | dst_image and src_image expect GdImage instances now; previously, resources were expected. | |
| imagecreate | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefrombmp | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromgd | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromgd2 | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromgd2part | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromgif | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromjpeg | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefrompng | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromstring | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromtga | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromwbmp | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromwebp | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromxbm | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatefromxpm | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecreatetruecolor | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecrop | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecrop | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagecropauto | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagecropauto | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagedashedline | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagedestroy | This function is a NOP now. | |
| imagedestroy | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageellipse | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefill | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilledarc | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilledellipse | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilledpolygon | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilledrectangle | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilltoborder | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefilter | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageflip | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagefttext | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegammacorrect | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegd | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegd2 | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegetclip | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegetinterpolation | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegif | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagegrabscreen | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagegrabwindow | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagegrabwindow | client_area expects a bool now; previously it expected an int. | |
| imageinterlace | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageinterlace | enable expects a bool now; previously it expected an int. | |
| imageistruecolor | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagejpeg | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagelayereffect | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageline | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageopenpolygon | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagepalettecopy | dst and src expect GdImage instances now; previously, resources were expected. | |
| imagepalettetotruecolor | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagepng | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagepolygon | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagerectangle | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imageresolution | resolution_x and resolution_y are now nullable. | |
| imagerotate | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagerotate | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagerotate | The unused ignore_transparent expects a bool now; previously it expected an int. | |
| imagesavealpha | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagescale | On success, this function returns a GDImage instance now; previously, a resource was returned. | |
| imagescale | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesetbrush | image and brush expect GdImage instances now; previously, resources were expected. | |
| imagesetclip | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesetinterpolation | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesetpixel | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesetthickness | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesettile | image and tile expect GdImage instances now; previously, resources were expected. | |
| imagestring | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagestringup | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesx | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagesy | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagetruecolortopalette | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagettfbbox | The options has been added. | |
| imagettftext | The options has been added. | |
| imagewbmp | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagewbmp | foreground_color is nullable now. | |
| imagewebp | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagexbm | image expects a GdImage instance now; previously, a valid gd resource was expected. | |
| imagexbm | foreground_color is now nullable. | |
| imagexbm | The fourth parameter, which was unused, has been removed. | |
| implode | Passing the separator after the array is no longer supported. | |
| inflate_add | context expects an InflateContext instance now; previously, a resource was expected. | |
| inflate_get_read_len | context expects an InflateContext instance now; previously, a resource was expected. | |
| inflate_get_status | context expects an InflateContext instance now; previously, a resource was expected. | |
| inflate_init | On success, this function returns an InflateContext instance now; previously, a resource was returned. | |
| intval | The error level when converting from object was changed from E_NOTICE to E_WARNING. | |
| is_numeric | Numeric strings ending with whitespace ("42 ") will now return true. Previously, false was returned instead. | |
| jdtounix | This function no longer returns false on failure, but raises a ValueError instead. | |
| ldap_add | controls is nullable now; previously, it defaulted to []. | |
| ldap_add_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_bind_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_compare | controls is nullable now; previously, it defaulted to []. | |
| ldap_control_paged_result | This function has been removed. | |
| ldap_control_paged_result_response | This function has been removed. | |
| ldap_delete | controls is nullable now; previously, it defaulted to []. | |
| ldap_delete_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_exop_passwd | controls is nullable now; previously, it defaulted to []. | |
| ldap_first_attribute | The unused third parameter ber_identifier is no longer accepted. | |
| ldap_list | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_add | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_del | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_replace | controls is nullable now; previously, it defaulted to []. | |
| ldap_modify_batch | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_add_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_del_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_mod_replace_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_next_attribute | The unused third parameter ber_identifier is no longer accepted. | |
| ldap_read | controls is nullable now; previously, it defaulted to []. | |
| ldap_rename | controls is nullable now; previously, it defaulted to []. | |
| ldap_rename_ext | controls is nullable now; previously, it defaulted to []. | |
| ldap_sasl_bind | dn, password, mech, realm, authc_id, authz_id and props are nullable now. | |
| ldap_search | controls is nullable now; previously, it defaulted to []. | |
| ldap_set_rebind_proc | callback is nullable now. | |
| ldap_sort | This function has been removed. | |
| levenshtein | Prior to this version, levenshtein had to be called with either two or five arguments. | |
| levenshtein | Prior to this version, levenshtein would return -1 if one of the argument strings is longer than 255 characters. | |
| libxml_disable_entity_loader | This function has been deprecated. | |
| libxml_use_internal_errors | use_errors is nullable now. Previously, its default was false. | |
| localtime | timestamp is nullable now. | |
| All 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). | ||
| max | max throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted. | |
| max | As string to number comparisons were changed, max no longer returns a different value based on the argument order in those cases. | |
| mb_check_encoding | value and encoding are nullable now. | |
| mb_chr | encoding is nullable now. | |
| mb_convert_encoding | mb_convert_encoding will now throw a ValueError when to_encoding is passed an invalid encoding. | |
| mb_convert_encoding | mb_convert_encoding will now throw a ValueError when from_encoding is passed an invalid encoding. | |
| mb_convert_encoding | from_encoding is nullable now. | |
| mb_convert_kana | encoding is nullable now. | |
| mb_decode_numericentity | encoding is nullable now. | |
| mb_detect_order | encoding is nullable now. | |
| mb_encode_mimeheader | charset and transfer_encoding are nullable now. | |
| mb_encode_numericentity | encoding is nullable now. | |
| mb_encoding_aliases | Now throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned. | |
| mb_ereg | This 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_match | options is nullable now. | |
| mb_ereg_replace | options is nullable now. | |
| mb_ereg_replace_callback | options is nullable now. | |
| mb_ereg_search | pattern and options are nullable now. | |
| mb_ereg_search_init | pattern and options are nullable now. | |
| mb_ereg_search_pos | pattern and options are nullable now. | |
| mb_ereg_search_regs | pattern and options are nullable now. | |
| mb_eregi | This 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_replace | options is nullable now. | |
| mb_get_info | The types "func_overload" and "func_overload_list" are no longer supported. | |
| mb_http_input | mb_http_input now throws a ValueError if type is invalid. type is nullable now. | |
| mb_http_output | encoding is nullable now. | |
| mb_internal_encoding | encoding is nullable now. | |
| mb_internal_encoding | Now throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned. | |
| mb_language | language is nullable now. | |
| mb_ord | encoding is nullable now. | |
| mb_parse_str | The second parameter was no longer optional. | |
| mb_regex_encoding | encoding is nullable now. | |
| mb_regex_set_options | If the parameter options is given and not null, the previous options are returned. Formerly, the current options have been returned. | |
| mb_regex_set_options | options is nullable now. | |
| mb_regex_set_options | The "e" option now throws a ValueError. | |
| mb_scrub | encoding is nullable now. | |
| mb_send_mail | additional_params is nullable now. | |
| mb_str_split | encoding is nullable now. | |
| mb_str_split | This function no longer returns false on failure. | |
| mb_strcut | encoding is nullable now. | |
| mb_strimwidth | encoding is nullable now. | |
| mb_stripos | needle now accepts an empty string. | |
| mb_stripos | encoding is nullable now. | |
| mb_stristr | needle now accepts an empty string. | |
| mb_stristr | encoding is nullable now. | |
| mb_strlen | encoding is nullable now. | |
| mb_strlen | Now throws a ValueError if encoding is an invalid encoding. Previously, an E_WARNING was emitted and false was returned. | |
| mb_strpos | needle now accepts an empty string. | |
| mb_strpos | encoding is nullable now. | |
| mb_strrchr | needle now accepts an empty string. | |
| mb_strrchr | encoding is nullable now. | |
| mb_strrichr | needle now accepts an empty string. | |
| mb_strrichr | encoding is nullable now. | |
| mb_strripos | needle now accepts an empty string. | |
| mb_strripos | encoding is nullable now. | |
| mb_strrpos | needle now accepts an empty string. | |
| mb_strrpos | Passing the encoding as the third argument instead of an offset has been removed. | |
| mb_strrpos | encoding is nullable now. | |
| mb_strstr | needle now accepts an empty string. | |
| mb_strstr | encoding is nullable now. | |
| mb_strwidth | encoding is nullable now. | |
| mb_substitute_character | Passing an empty string to substitute_character is no longer supported; "none" should be passed instead. | |
| mb_substitute_character | encoding is nullable now. | |
| mb_substr | encoding is nullable now. | |
| mb_substr_count | encoding is nullable now. | |
| metaphone | The function returned false on failure. | |
| mhash | key is now nullable. | |
| min | min throws a ValueError on failure now; previously, false was returned and an E_WARNING error was emitted. | |
| min | As string to number comparisons were changed, min no longer returns a different value based on the argument order in those cases. | |
| mktime | hour is no longer optional. If you need a Unix timestamp, use time. | |
| mktime | minute, second, month, day and year are nullable now. | |
| money_format | Removed this function. | |
| msg_get_queue | On success, this function returns a SysvMessageQueue instance now; previously, a resource was returned. | |
| msg_receive | queue expects a SysvMessageQueue instance now; previously, a resource was expected. | |
| msg_remove_queue | queue expects a SysvMessageQueue instance now; previously, a resource was expected. | |
| msg_send | queue expects a SysvMessageQueue instance now; previously, a resource was expected. | |
| msg_set_queue | queue expects a SysvMessageQueue instance now; previously, a resource was expected. | |
| msg_stat_queue | queue expects a SysvMessageQueue instance now; previously, a resource was expected. | |
| mt_rand | A ValueError will be thrown if max is less than min; previously an E_WARNING was raised, and the function returned false. | |
| number_format | Prior to this version, number_format accepted one, two, or four parameters (but not three). | |
| ob_implicit_flush | The enable expects a bool value now; previously, an int was expected. | |
| odbc_columns | schema, table and column are now nullable. | |
| odbc_error | odbc is now nullable. | |
| odbc_errormsg | odbc is now nullable. | |
| odbc_exec | flags was removed. | |
| odbc_execute | The unused flags parameter was removed. | |
| odbc_fetch_row | row is now nullable. | |
| odbc_procedurecolumns | Prior to this version, the function could only be called with either one or five arguments. | |
| odbc_procedures | Prior to this version, the function could only be called with either one or four arguments. | |
| odbc_tables | schema, table and types are now nullable. | |
| opendir | context is now nullable. | |
| openssl_csr_export | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_csr_export_to_file | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_csr_get_public_key | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned. | |
| openssl_csr_get_public_key | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_csr_get_subject | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_csr_new | On success, this function returns an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was returned. | |
| openssl_csr_new | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_csr_sign | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned. | |
| openssl_csr_sign | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_csr_sign | ca_certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_csr_sign | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_dh_compute_key | private_key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_free_key | This function is now deprecated as it doesn't have an effect anymore. | |
| openssl_free_key | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_open | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted. | |
| openssl_open | cipher_algo is no longer an optional parameter. | |
| openssl_pkcs7_decrypt | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs7_encrypt | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs7_sign | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs7_sign | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs7_verify | signers_certificates_filename, untrusted_certificates_filename, content and output_filename are nullable now. | |
| openssl_pkcs12_export | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs12_export | private_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_file | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted. | |
| openssl_pkcs12_export_to_file | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_pkey_export | key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_pkey_export_to_file | key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_pkey_free | This function is now deprecated as it doesn't have an effect anymore. | |
| openssl_pkey_free | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_pkey_get_details | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_pkey_get_private | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned. | |
| openssl_pkey_get_private | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_pkey_get_private | passphrase is nullable now. | |
| openssl_pkey_get_public | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned. | |
| openssl_pkey_get_public | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_pkey_new | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned. | |
| openssl_private_decrypt | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_private_encrypt | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_public_decrypt | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_public_encrypt | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_random_pseudo_bytes | strong_result is nullable now. | |
| openssl_seal | public_key accepts an array of OpenSSLAsymmetricKey instances now; previously, an array of resources of type OpenSSL key was accepted. | |
| openssl_seal | cipher_algo is no longer an optional parameter. | |
| openssl_seal | iv is nullable now. | |
| openssl_sign | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_spki_new | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted. | |
| openssl_verify | public_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_key | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_check_private_key | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| openssl_x509_checkpurpose | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_checkpurpose | untrusted_certificates_file is nullable now. | |
| openssl_x509_export | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_export_to_file | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_fingerprint | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_free | This function is now deprecated as it doesn't have an effect anymore. | |
| openssl_x509_free | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_parse | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_read | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned. | |
| openssl_x509_read | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_verify | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted. | |
| openssl_x509_verify | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted. | |
| pack | This function no longer returns false on failure. | |
| parse_str | result is no longer optional. | |
| parse_url | parse_url will now distinguish absent and empty queries and fragments. | |
| passthru | If command is empty or contains null bytes, passthru now throws a ValueError. Previously it emitted an E_WARNING and returned false. | |
| password_hash | password_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_hash | The algo parameter is nullable now. | |
| pcntl_async_signals | enable is nullable now. | |
| pcntl_getpriority | process_id is nullable now. | |
| pcntl_setpriority | process_id is nullable now. | |
| pfsockopen | timeout is nullable now. | |
| pg_client_encoding | connection is now nullable. | |
| pg_close | connection is now nullable. | |
| pg_dbname | connection is now nullable. | |
| pg_end_copy | connection is now nullable. | |
| pg_fetch_all | pg_fetch_all will now return an empty array instead of false for result sets with zero rows. | |
| pg_host | connection is now nullable. | |
| pg_last_error | connection is now nullable. | |
| pg_lo_write | length is now nullable. | |
| pg_options | connection is now nullable. | |
| pg_ping | connection is now nullable. | |
| pg_port | connection is now nullable. | |
| pg_trace | connection is now nullable. | |
| pg_tty | connection is now nullable. | |
| pg_untrace | connection is now nullable. | |
| pg_version | connection is now nullable. | |
| phpversion | extension is nullable now. | |
| printf | This function no longer returns false on failure. | |
| printf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| printf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| printf | Throws a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| printf | Throws an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| quotemeta | Returns an empty string, instead of false, when string is empty. | |
| readdir | dir_handle is now nullable. | |
| readline_info | var_name and value are nullable now. | |
| readline_read_history | filename is nullable now. | |
| readline_write_history | filename is nullable now. | |
| restore_include_path | Removed this function. | |
| rewinddir | dir_handle is now nullable. | |
| round | num no longer accepts internal objects which support numeric conversion. | |
| sapi_windows_vt100_support | enable is now nullable. | |
| scandir | context is now nullable. | |
| sem_acquire | semaphore expects a SysvSemaphore instance now; previously, a resource was expected. | |
| sem_get | On success, this function returns a SysvSemaphore instance now; previously, a resource was returned. | |
| sem_get | The type of auto_release has been changed from int to bool. | |
| sem_release | semaphore expects a SysvSemaphore instance now; previously, a resource was expected. | |
| sem_remove | semaphore expects a SysvSemaphore instance now; previously, a resource was expected. | |
| session_cache_expire | value is nullable now. | |
| session_cache_limiter | value is nullable now. | |
| session_id | id is nullable now. | |
| session_module_name | module is nullable now. | |
| session_name | name is nullable now. | |
| session_save_path | path is nullable now. | |
| session_set_cookie_params | path, domain, secure and httponly are nullable now. | |
| set_error_handler | errcontext was removed, and will no longer be passed to user callbacks. | |
| setcookie | Passing unsupported keys now throws a ValueError instead of emitting an E_WARNING. | |
| settype | Now throws a ValueError when an invalid type is passed to type. Previously, a E_WARNING was emitted and the function returned false. | |
| shm_attach | On success, this function returns an SysvSharedMemory instance now; previously, a resource was returned. | |
| shm_attach | size is nullable now. | |
| shm_detach | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shm_get_var | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shm_has_var | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shm_put_var | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shm_remove | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shm_remove_var | shm expects a SysvSharedMemory instance now; previously, a resource was expected. | |
| shmop_close | This function has been deprecated, as this function has no effect anymore. | |
| shmop_close | shmop expects a Shmop instance now; previously, a resource was expected. | |
| shmop_delete | shmop expects a Shmop instance now; previously, a resource was expected. | |
| shmop_open | On success, this function returns an Shmop instance now; previously, a resource was returned. | |
| shmop_open | If 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_read | shmop expects a Shmop instance now; previously, a resource was expected. | |
| shmop_read | If offset or size are out of range, a ValueError is thrown; previously E_WARNING was emitted, and false was returned, | |
| shmop_size | shmop expects a Shmop instance now; previously, a resource was expected. | |
| shmop_write | Prior to PHP 8.0.0, false was returned on failure. | |
| shmop_write | shmop expects a Shmop instance now; previously, a resource was expected. | |
| sleep | The function throws a ValueError on negative seconds; previously, an E_WARNING was raised instead, and the function returned false. | |
| socket_accept | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_addrinfo_bind | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_addrinfo_bind | address is an AddressInfo instance now; previously, it was a resource. | |
| socket_addrinfo_connect | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_addrinfo_connect | address is an AddressInfo instance now; previously, it was a resource. | |
| socket_addrinfo_explain | address is an AddressInfo instance now; previously, it was a resource. | |
| socket_addrinfo_lookup | On success, this function returns an array of AddressInfo instances now; previously, an array of resources was returned. | |
| socket_addrinfo_lookup | service is nullable now. | |
| socket_bind | socket is a Socket instance now; previously, it was a resource. | |
| socket_clear_error | socket is a Socket instance now; previously, it was a resource. | |
| socket_clear_error | socket is nullable now. | |
| socket_close | socket is a Socket instance now; previously, it was a resource. | |
| socket_connect | socket is a Socket instance now; previously, it was a resource. | |
| socket_connect | port is nullable now. | |
| socket_create | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_create_listen | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_create_pair | pair is a reference to an array of Socket instances now; previously, it was a reference to an array of resources. | |
| socket_export_stream | socket is a Socket instance now; previously, it was a resource. | |
| socket_get_option | socket is a Socket instance now; previously, it was a resource. | |
| socket_getpeername | socket is a Socket instance now; previously, it was a resource. | |
| socket_getsockname | socket is a Socket instance now; previously, it was a resource. | |
| socket_import_stream | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| socket_last_error | socket is a Socket instance now; previously, it was a resource. | |
| socket_last_error | socket is nullable now. | |
| socket_listen | socket is a Socket instance now; previously, it was a resource. | |
| socket_read | socket is a Socket instance now; previously, it was a resource. | |
| socket_recv | socket is a Socket instance now; previously, it was a resource. | |
| socket_recvfrom | socket is a Socket instance now; previously, it was a resource. | |
| socket_recvmsg | socket is a Socket instance now; previously, it was a resource. | |
| socket_send | socket is a Socket instance now; previously, it was a resource. | |
| socket_sendmsg | socket is a Socket instance now; previously, it was a resource. | |
| socket_sendto | socket is a Socket instance now; previously, it was a resource. | |
| socket_sendto | port is nullable now. | |
| socket_set_block | socket is a Socket instance now; previously, it was a resource. | |
| socket_set_nonblock | socket is a Socket instance now; previously, it was a resource. | |
| socket_set_option | socket is a Socket instance now; previously, it was a resource. | |
| socket_shutdown | socket is a Socket instance now; previously, it was a resource. | |
| socket_write | socket is a Socket instance now; previously, it was a resource. | |
| socket_write | length is nullable now. | |
| socket_wsaprotocol_info_export | socket is a Socket instance now; previously, it was a resource. | |
| socket_wsaprotocol_info_import | On success, this function returns a Socket instance now; previously, a resource was returned. | |
| soundex | Prior to this version, calling the function with an empty string returned false for no particular reason. | |
| spl_autoload | file_extensions is now nullable. | |
| spl_autoload_extensions | file_extensions is now nullable. | |
| spl_autoload_functions | Return value was updated to always be an array; previously this function returned false if the autoload queue wasn't activated. | |
| spl_autoload_register | callback is now nullable. | |
| sprintf | This function no longer returns false on failure. | |
| sprintf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| sprintf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| sprintf | Throws a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| sprintf | Throws an ArgumentCountError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| str_split | If 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_count | characters is nullable now. | |
| strcspn | length is nullable now. | |
| stream_context_create | options and params are now nullable. | |
| stream_context_get_default | options is now nullable. | |
| stream_copy_to_stream | length is now nullable. | |
| stream_get_contents | length is now nullable. | |
| stream_set_chunk_size | A 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_accept | timeout is now nullable. | |
| stream_socket_client | timeout and context are now nullable. | |
| stream_socket_enable_crypto | session_stream is now nullable. | |
| stream_socket_server | context is nullable now. | |
| strftime | timestamp is nullable now. | |
| strip_tags | allowed_tags is nullable now. | |
| stripos | needle now accepts an empty string. | |
| stripos | Passing an int as needle is no longer supported. | |
| stristr | needle now accepts an empty string. | |
| stristr | Passing an int as needle is no longer supported. | |
| strpos | needle now accepts an empty string. | |
| strpos | Passing an int as needle is no longer supported. | |
| strrchr | needle now accepts an empty string. | |
| strrchr | Passing an int as needle is no longer supported. | |
| strripos | needle now accepts an empty string. | |
| strripos | Passing an int as needle is no longer supported. | |
| strrpos | needle now accepts an empty string. | |
| strrpos | Passing an int as needle is no longer supported. | |
| strspn | length is nullable now. | |
| strstr | needle now accepts an empty string. | |
| strstr | Passing an int as needle is no longer supported. | |
| strtotime | baseTimestamp is nullable now. | |
| substr | length 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. | |
| substr | The function returns an empty string where it previously returned false. | |
| substr_compare | length is nullable now. | |
| substr_count | length is nullable now. | |
| substr_replace | length is nullable now. | |
| touch | mtime and atime are now nullable. | |
| trigger_error | The function now throws a ValueError if an invalid error_level is specified. Previously, it returned false. | |
| uasort | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| uksort | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| umask | mask is nullable now. | |
| unixtojd | timestamp is nullable now. | |
| usort | If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING. | |
| vfprintf | This function no longer returns false on failure. | |
| vfprintf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| vfprintf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vfprintf | Throw a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vfprintf | Throws a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| vprintf | This function no longer returns false on failure. | |
| vprintf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| vprintf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vprintf | Throw a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vprintf | Throws a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| vsprintf | This function no longer returns false on failure. | |
| vsprintf | Throws a ValueError if the number of arguments is zero; previously this function emitted an E_WARNING instead. | |
| vsprintf | Throws a ValueError if [width] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vsprintf | Throw a ValueError if [precision] is less than zero or bigger than PHP_INT_MAX; previously this function emitted an E_WARNING instead. | |
| vsprintf | Throws a ValueError when fewer arguments are given than required; previously this function emitted an E_WARNING instead. | |
| wordwrap | If break is empty string, a ValueError is thrown; previously in this case it emitted an E_WARNING and returned false. | |
| xml_get_current_byte_index | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_get_current_column_number | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_get_current_line_number | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_get_error_code | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parse | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parse_into_struct | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parser_create | This function returns an XMLParser instance now; previously, a resource was returned, or false on failure. | |
| xml_parser_create | encoding is nullable now. | |
| xml_parser_create_ns | This function returns an XMLParser instance now; previously, a resource was returned, or false on failure. | |
| xml_parser_create_ns | encoding is nullable now. | |
| xml_parser_free | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parser_get_option | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parser_get_option | A ValueError is now thrown if option is invalid. | |
| xml_parser_set_option | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_parser_set_option | A ValueError is now thrown if option is invalid. | |
| xml_set_character_data_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_default_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_element_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_end_namespace_decl_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_external_entity_ref_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_notation_decl_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_object | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_processing_instruction_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_start_namespace_decl_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| xml_set_unparsed_entity_decl_handler | parser expects an XMLParser instance now; previously, a valid xml resource was expected. | |
| zip_close | This function is deprecated in favor of the Object API, see ZipArchive::close. | |
| zip_entry_close | This function is deprecated in favor of the Object API. | |
| zip_entry_compressedsize | This function is deprecated in favor of the Object API, see ZipArchive::statIndex. | |
| zip_entry_compressionmethod | This function is deprecated in favor of the Object API, see ZipArchive::statIndex. | |
| zip_entry_filesize | This function is deprecated in favor of the Object API, see ZipArchive::statIndex. | |
| zip_entry_name | This function is deprecated in favor of the Object API, see ZipArchive::statIndex. | |
| zip_entry_open | This function is deprecated in favor of the Object API. | |
| zip_entry_read | This function is deprecated in favor of the Object API, see ZipArchive::getFromIndex. | |
| zip_open | This function is deprecated in favor of the Object API, see ZipArchive::open. | |
| zip_read | This function is deprecated in favor of the Object API, see ZipArchive::statIndex. | |
| GlobIterator::__construct | Now throws a ValueError if directory is an empty string; previously it threw a RuntimeException. | |
| IntlCalendar::setMinimalDaysInFirstWeek | A ValueError is now thrown on invalid input. Previously, false was returned. | |
| IntlTimeZone::getIDForWindowsID | region is now nullable. | |
| LimitIterator::__construct | Now throws a ValueError if offset is less than 0; previously it threw a RuntimeException. | |
| LimitIterator::__construct | Now throws a ValueError if limit is less than -1; previously it threw a RuntimeException. | |
| Locale::getDisplayLanguage | displayLocale is nullable now. | |
| Locale::getDisplayName | displayLocale is nullable now. | |
| Locale::getDisplayRegion | displayLocale is nullable now. | |
| Locale::getDisplayScript | displayLocale is nullable now. | |
| Locale::getDisplayVariant | displayLocale is nullable now. | |
| mysqli_result::fetch_object | constructor_args now accepts [] for constructors with 0 parameters; previously an exception was thrown. | |
| mysqli_result::field_seek | This function now always returns true. Previously it returned false on failure. | |
| mysqli_stmt::close | This function now always returns true. Previously it returned false on failure. | |
| mysqli_stmt::__construct | query is now nullable. | |
| mysqli::begin_transaction | name is now nullable. | |
| mysqli::close | This function now always returns true. Previously it returned false on failure. | |
| mysqli::commit | name is now nullable. | |
| mysqli::debug | This function now always returns true. Previously it returned false on failure. | |
| mysqli::rollback | name is now nullable. | |
| NumberFormatter::create | pattern is nullable now. | |
| PDOStatement::fetchAll | This method always returns an array now, while previously false may have been returned on failure. | |
| Phar::addFile | localName is now nullable. | |
| Phar::buildFromIterator | baseDirectory is now nullable. | |
| Phar::compress | extension is now nullable. | |
| Phar::convertToData | format, compression, and extension are now nullable. | |
| Phar::convertToExecutable | format, compression, and extension are now nullable. | |
| Phar::createDefaultStub | index and webIndex are now nullable. | |
| Phar::decompress | extension is now nullable. | |
| Phar::getMetadata | The parameter unserializeOptions has been added. | |
| Phar::setDefaultStub | webIndex is nullable now. | |
| Phar::setSignatureAlgorithm | privateKey is now nullable. | |
| Phar::webPhar | fileNotFoundScript and rewrite are nullable now. | |
| PharData::addFile | localName is now nullable. | |
| PharData::buildFromIterator | baseDirectory is now nullable. | |
| PharData::compress | extension is now nullable. | |
| PharData::convertToData | format, compression, and extension are now nullable. | |
| PharData::convertToExecutable | format, compression, and localName are now nullable. | |
| PharData::decompress | extension is now nullable. | |
| PharData::setDefaultStub | webIndex is nullable now. | |
| PharData::setSignatureAlgorithm | privateKey is now nullable. | |
| PharFileInfo::getMetadata | The parameter unserializeOptions has been added. | |
| PharFileInfo::isCompressed | compression is now nullable. | |
| RecursiveDirectoryIterator::__construct | Now throws a ValueError if directory is an empty string; previously it threw a RuntimeException. | |
| RecursiveIteratorIterator::getSubIterator | level is now nullable. | |
| ReflectionClass::getConstants | filter has been added. | |
| ReflectionClass::getReflectionConstants | filter has been added. | |
| ReflectionClass::newInstanceArgs | args keys will now be interpreted as parameter names, instead of being silently ignored. | |
| ReflectionClass::setStaticPropertyValue | ReflectionClass::setStaticPropertyValue can now set private and protected static properties. Previously, a ReflectionException was thrown. | |
| ReflectionFunction::invokeArgs | args keys will now be interpreted as parameter names, instead of being silently ignored. | |
| ReflectionFunction::isDisabled | This function has been deprecated, as ReflectionFunction can no longer be constructed for disabled functions. | |
| ReflectionMethod::export | Removed this function. | |
| ReflectionMethod::getClosure | object is now nullable. | |
| ReflectionMethod::invokeArgs | args keys will now be interpreted as parameter names, instead of being silently ignored. | |
| ReflectionParameter::getClass | This function has been deprecated in favor of ReflectionParameter::getType instead. | |
| ReflectionParameter::getDefaultValue | This method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown. | |
| ReflectionParameter::getDefaultValueConstantName | This method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown. | |
| ReflectionParameter::isArray | This function has been deprecated in favor of ReflectionParameter::getType instead. | |
| ReflectionParameter::isCallable | This function has been deprecated in favor of ReflectionParameter::getType instead. | |
| ReflectionProperty::getValue | object is nullable now. | |
| ReflectionProperty::isInitialized | object is nullable now. | |
| ReflectionType::__toString | ReflectionType::__toString has been undeprecated. | |
| Reflector::export | Removed this function. | |
| SimpleXMLElement::asXML | filename is nullable now. | |
| SoapClient::__doRequest | The type of oneWay is bool now; formerly it was int. | |
| SoapClient::__setCookie | value is now nullable. | |
| SoapServer::handle | request is now nullable. | |
| SplFileInfo::getFileInfo | class is now nullable. | |
| SplFileInfo::getPathInfo | class is now nullable. | |
| SplFileInfo::openFile | context is now nullable. | |
| SplFixedArray::__construct | Now throws a ValueError if size is a negative; previously it threw a InvalidArgumentException. | |
| tidy::__construct | filename, config, encoding and useIncludePath are nullable now. | |
| tidy::parseFile | config and encoding are nullable now. | |
| tidy::parseString | config and encoding are nullable now. | |
| tidy::repairFile | tidy::repairFile is a static method now. | |
| tidy::repairFile | config and encoding are nullable now. | |
| tidy::repairString | tidy::repairString is a static method now. | |
| tidy::repairString | config and encoding are nullable now. | |
| tidy::repairString | This function no longer accepts the useIncludePath parameter. | |
| XMLReader::getAttribute | This function can no longer return false. | |
| XMLReader::getAttributeNs | This function can no longer return false. | |
| XMLReader::lookupNamespace | This function can no longer return false. | |
| XMLReader::next | name is nullable now. | |
| XMLReader::open | XMLReader::open is now declared as static method, but can still be called on an XMLReader instance. | |
| XMLReader::XML | XMLReader::XML is now declared as static method, but can still be called on an XMLReader instance. | |
| XMLWriter::endAttribute | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endCdata | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endComment | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endDocument | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endDtd | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endDtdAttlist | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endDtdElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endDtdEntity | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::endPi | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::flush | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::flush | This function can no longer return false. | |
| XMLWriter::fullEndElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::openMemory | This function returns now an XMLWriter instance on success. Previously, a resource has been returned in this case. | |
| XMLWriter::openUri | This function returns now an XMLWriter instance on success. Previously, a resource has been returned in this case. | |
| XMLWriter::outputMemory | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::setIndent | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::setIndentString | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startAttribute | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startAttributeNs | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startAttributeNs | prefix is nullable now. | |
| XMLWriter::startCdata | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startComment | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startDocument | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startDtd | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startDtdAttlist | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startDtdElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startDtdEntity | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startElementNs | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::startPi | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::text | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeAttribute | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeAttributeNs | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeCdata | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeComment | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeDtd | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeDtdAttlist | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeDtdElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeDtdEntity | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeDtdEntity | publicId, systemId and notationData are nullable now. | |
| XMLWriter::writeElement | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeElementNs | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writePi | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| XMLWriter::writeRaw | writer expects an XMLWriter instance now; previously, a resource was expected. | |
| ZipArchive::addEmptyDir | flags was added. | |
| ZipArchive::addFile | flags was added. | |
| ZipArchive::addFromString | flags 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::getStatusString | This method can be called on closed archive. | |
| ZipArchive::getStatusString | This method no longer returns false on failure. | |
| ZipArchive::setEncryptionIndex | password is now nullable. | |
| ZipArchive::setEncryptionName | password is now nullable. | |
| 7.4.12 | jdtounix | The upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture. |
| tidyNode::isHtml | This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node. | |
| 7.4.9 | ReflectionClass::setStaticPropertyValue | ReflectionClass::setStaticPropertyValue can now set private and protected static properties. Previously, a ReflectionException was thrown. |
| 7.4.4 | proc_open | Added the create_new_console option to the options parameter. |
| 7.4.3 | curl_setopt | Introduced CURLOPT_HTTP09_ALLOWED. |
| 7.4.2 | dba_open | The lmdb driver now supports an additional map_size parameter. |
| dba_popen | The lmdb driver now supports an additional map_size parameter. | |
| 7.4.0 | DatePeriod::__construct | recurrences must be greater than 0 now. |
| array_key_exists | Passing an object to the array parameter has been deprecated. Use property_exists instead. | |
| array_merge | This function can now be called without any parameter. Formerly, at least one parameter has been required. | |
| array_merge_recursive | This function can now be called without any parameter. Formerly, at least one parameter has been required. | |
| base_convert | Passing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. | |
| bindec | Passing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. | |
| chr | The function no longer silently accepts unsupported codepoints, and casts these to 0. | |
| convert_cyr_string | Deprecated this function. | |
| curl_version | The optional age parameter has been deprecated; if a value is passed, it is ignored. | |
| current | Instances 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. | |
| end | Instances 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. | |
| fgetcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism. | |
| fputcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism. | |
| get_declared_classes | Previously 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_gpc | Deprecated this function. | |
| get_magic_quotes_runtime | Deprecated this function. | |
| gzread | This functions returns false on failure now; previously 0 was returned. | |
| gzwrite | This functions returns false on failure now; previously 0 was returned. | |
| hash_algos | Support for crc32c has been added. | |
| hebrevc | Deprecated this function. | |
| hexdec | Passing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. | |
| idn_to_ascii | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003. | |
| idn_to_utf8 | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003. | |
| imagecropauto | The 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. | |
| imagecropauto | The 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. | |
| imagefilter | Scatter support (IMG_FILTER_SCATTER) was added. | |
| implode | Passing the separator after the array (i.e. using the legacy signature) has been deprecated. | |
| key | Instances 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_result | This function has been deprecated. | |
| ldap_control_paged_result_response | This function has been deprecated. | |
| method_exists | Class checks against inherited private methods now return false. | |
| money_format | Deprecated this function. Instead, use NumberFormatter::formatCurrency. | |
| next | Instances 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. | |
| octdec | Passing 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_bytes | The function no longer returns false on failure, but throws an Exception instead. | |
| password_hash | The algo parameter expects a string now, but still accepts ints for backward compatibility. | |
| password_hash | The sodium extension provides an alternative implementation for Argon2 passwords. | |
| password_needs_rehash | The algo parameter expects a string now, but still accepts ints for backward compatibility. | |
| pcntl_signal | restart_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_match | When 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_callback | The flags parameter was added. | |
| preg_replace_callback_array | The flags parameter was added. | |
| prev | Instances 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_open | proc_open now also accepts an array for the command. | |
| proc_open | Added the create_process_group option to the options parameter. | |
| reset | Instances 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_path | Deprecated this function. | |
| stat | On 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. | |
| stat | The 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_getcsv | The 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_tags | The allowed_tags now alternatively accepts an array. | |
| unserialize | Added the max_depth element of options to set the maximum depth of structures permitted during unserialization. | |
| Locale::lookup | defaultLocale is nullable now. | |
| mysqli::__construct | All parameters are now nullable. | |
| mysqli::real_connect | All parameters are now nullable. | |
| ReflectionMethod::export | Deprecated this function. | |
| Reflector::export | Deprecated this function. | |
| SplFileObject::fgetcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism. | |
| SplFileObject::fputcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism. | |
| SplFileObject::fwrite | The function now returns false instead of zero on failure. | |
| SplFileObject::getCsvControl | The escape character can now be an empty string. | |
| SplFileObject::setCsvControl | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism. | |
| SQLite3Stmt::bindParam | param now also supports the @param notation. | |
| SQLite3Stmt::bindValue | param now also supports the @param notation. | |
| 7.3.24 | jdtounix | The upper limit of julian_day has been extended. Previously, it was 2465342 regardless of the architecture. |
| tidyNode::isHtml | This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node. | |
| 7.3.15 | curl_setopt | Introduced CURLOPT_HTTP09_ALLOWED. |
| 7.3.14 | dba_open | The lmdb driver now supports an additional map_size parameter. |
| dba_popen | The lmdb driver now supports an additional map_size parameter. | |
| 7.3.6 | DatePeriod::__construct | recurrences must be greater than 0 now. |
| SplFileObject::__toString | Changed from an alias of SplFileObject::current to an alias of SplFileObject::fgets. | |
| 7.3.5 | substr_compare | offset may now be equal to the length of haystack. |
| 7.3.0 | DateTimeImmutable::createFromFormat | The v format specifier has been added. |
| apache_request_headers | This function became available in the FPM SAPI. | |
| array_push | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| array_unshift | This function can now be called with only one parameter. Formerly, at least two parameters have been required. | |
| assert | Declaring a function called assert() inside a namespace became deprecated. Such declaration now emits an E_DEPRECATED. | |
| bcmul | bcmul now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes. | |
| bcpow | bcpow now returns numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes. | |
| bcscale | bcscale 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. | |
| compact | compact now issues an E_NOTICE level error if a given string refers to an unset variable. Formerly, such strings have been silently skipped. | |
| curl_getinfo | Introduced 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 | Introduced 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. | |
| define | case_insensitive has been deprecated and will be removed in version 8.0.0. | |
| ftp_fget | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_fput | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_get | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_nb_fget | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_nb_fput | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_nb_get | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_nb_put | The mode parameter is now optional. Formerly it has been mandatory. | |
| ftp_put | The mode parameter is now optional. Formerly it has been mandatory. | |
| getallheaders | This function became available in the FPM SAPI. | |
| imagecreatefromstring | WEBP is supported now (if supported by the libgd in use). | |
| is_countable | is_countable has been added. | |
| json_decode | JSON_THROW_ON_ERROR flags was added. | |
| json_encode | JSON_THROW_ON_ERROR flags was added. | |
| ldap_add | Support for controls added | |
| ldap_compare | Support for controls added | |
| ldap_delete | Support for controls added | |
| ldap_exop | Support for controls added | |
| ldap_exop_passwd | Support for controls added | |
| ldap_list | Support for controls added | |
| ldap_mod_add | Support for controls added | |
| ldap_mod_del | Support for controls added | |
| ldap_mod_replace | Support for controls added | |
| ldap_modify_batch | Support for controls added | |
| ldap_mod_add_ext | Support for controls added | |
| ldap_mod_del_ext | Support for controls added | |
| ldap_mod_replace_ext | Support for controls added | |
| ldap_parse_result | Support for controls added | |
| ldap_read | Support for controls added | |
| ldap_rename | Support for controls added | |
| ldap_rename_ext | Support for controls added | |
| ldap_search | Support for controls added | |
| list | Support for reference assignments in array destructuring was added. | |
| mb_convert_case | Added 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_hash | Support for Argon2id passwords using PASSWORD_ARGON2ID was added. | |
| preg_quote | The # character is now quoted | |
| session_get_cookie_params | The "samesite" entry was added in the returned array. | |
| session_set_cookie_params | An alternative signature supporting an lifetime_or_options array has been added. This signature supports also setting of the SameSite cookie attribute. | |
| setcookie | An alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute. | |
| setrawcookie | An alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute. | |
| stripos | Passing an int as needle has been deprecated. | |
| stristr | Passing an int as needle has been deprecated. | |
| strpos | Passing an int as needle has been deprecated. | |
| strrchr | Passing an int as needle has been deprecated. | |
| strripos | Passing an int as needle has been deprecated. | |
| strrpos | Passing an int as needle has been deprecated. | |
| strstr | Passing an int as needle has been deprecated. | |
| unlink | On 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_export | Now 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_option | options now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE. | |
| xml_set_external_entity_ref_handler | The 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.19 | DatePeriod::__construct | recurrences must be greater than 0 now. |
| SplFileObject::__toString | Changed from an alias of SplFileObject::current to an alias of SplFileObject::fgets. | |
| 7.2.18 | litespeed_finish_request | This function became available. |
| substr_compare | offset may now be equal to the length of haystack. | |
| 7.2.12 | DateInterval::format | The F and f format will now always be positive. |
| xml_parser_get_option | options now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE. | |
| 7.2.0 | array_unique | If 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. |
| assert | Usage 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. | |
| bcmod | num1 and num2 are no longer truncated to integer, so now the behavior of bcmod follows fmod rather than the % operator. | |
| bcmod | The scale parameter was added. | |
| count | count will now yield a warning on invalid countable types passed to the value parameter. | |
| date_parse | The 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_format | The 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_info | The calculation was fixed with regards to local midnight instead of local noon, which changes the results slightly. | |
| exif_read_data | The file parameter now supports both local files and stream resources. | |
| exif_read_data | Support for the following EXIF formats were added: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson | |
| exif_thumbnail | The file parameter now supports both local files and stream resources. | |
| ezmlm_hash | Deprecated this function. | |
| get_class | Prior 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. | |
| gettype | Closed resources are now reported as 'resource (closed)'. Previously the returned value for closed resources were 'unknown type'. | |
| hash_copy | Accept and return HashContext instead of resource. | |
| hash_final | Accept HashContext instead of resource. | |
| hash_hmac | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled. | |
| hash_hmac_file | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled. | |
| hash_init | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMAC was disabled. | |
| hash_init | Return HashContext instead of resource. | |
| hash_pbkdf2 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled. | |
| hash_update | Accept HashContext instead of resource. | |
| hash_update_file | Accept HashContext instead of resource. | |
| hash_update_stream | Accept HashContext instead of resource. | |
| idn_to_ascii | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead. | |
| idn_to_utf8 | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead. | |
| imageantialias | imageantialias is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library. | |
| imagegd | imagegd now allows to output truecolor images. Formerly, these have been implicitly converted to palette. | |
| imagelayereffect | Added IMG_EFFECT_MULTIPLY (requires system libgd >= 2.1.1 or the bundled libgd). | |
| imagetypes | IMG_BMP added. | |
| is_object | is_object now returns true for unserialized objects without a class definition (class of __PHP_Incomplete_Class). Previously false was returned. | |
| json_decode | associative is nullable now. | |
| json_decode | JSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added. | |
| json_encode | JSON_INVALID_UTF8_IGNORE, and JSON_INVALID_UTF8_SUBSTITUTE flags were added. | |
| The additional_headers parameter now also accepts an array. | ||
| mb_check_encoding | This function now also accepts an array as value. Formerly, only strings have been supported. | |
| mb_convert_encoding | This function now also accepts an array as string. Formerly, only strings have been supported. | |
| mb_parse_str | Calling mb_parse_str without the second parameter was deprecated. | |
| mb_send_mail | The additional_headers parameter now also accepts an array. | |
| mt_rand | mt_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_format | number_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_verify | The output_filename parameter was added. | |
| pack | float and double types supports both Big Endian and Little Endian. | |
| parse_str | Usage of parse_str without a second parameter now emits an E_DEPRECATED notice. | |
| password_hash | Support for Argon2i passwords using PASSWORD_ARGON2I was added. | |
| preg_match | The PREG_UNMATCHED_AS_NULL is now supported for the flags parameter. | |
| preg_match_all | The PREG_UNMATCHED_AS_NULL is now supported for the flags parameter. | |
| preg_quote | delimiter is nullable now. | |
| proc_nice | This function is now available on Windows. | |
| rand | 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. | |
| read_exif_data | This function alias was deprecated. | |
| session_abort | The return type of this function is bool now. Formerly, it has been void. | |
| session_module_name | It is now explicitly forbidden to set the module name to "user". Formerly, this has been silently ignored. | |
| session_name | session_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_reset | The return type of this function is bool now. Formerly, it has been void. | |
| session_set_cookie_params | Returns true on success or false on failure. Formerly the function returned void. | |
| session_unset | The return type of this function is bool now. Formerly, it has been void. | |
| session_write_close | The return type of this function is bool now. Formerly, it has been void. | |
| set_error_handler | errcontext became deprecated. Usage of this parameter now emits an E_DEPRECATED notice. | |
| unpack | float and double types supports both Big Endian and Little Endian. | |
| utf8_decode | This 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_encode | This 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::debugDumpParams | PDOStatement::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::getMethods | filter is nullable now. | |
| ReflectionClass::getProperties | filter is nullable now. | |
| SQLite3::openBlob | The flags parameter has been added, allowing to write BLOBs; formerly only reading was supported. | |
| 7.1.24 | xml_parser_get_option | options now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE. |
| 7.1.5 | IntlDateFormatter::format | Support for providing general DateTimeInterface objects to the datetime parameter was added. Formerly, only proper DateTime objects were supported. |
| 7.1.4 | PDO::sqliteCreateFunction | The flags parameter has been added. |
| SQLite3::createFunction | The flags parameter has been added. | |
| 7.1.2 | dns_get_record | Added support for CAA record type. |
| fopen | The 'e' option was added. | |
| 7.1.1 | get_defined_functions | The exclude_disabled parameter has been added. |
| pack | The "e", "E", "g" and "G" codes were added to enable byte order support for float and double. | |
| 7.1.0 | DateInterval::format | The F and f format characters were added. |
| DateTime::setTime | The microsecond parameter was added. | |
| DateTimeImmutable::__construct | From now on microseconds are filled with actual value. Not with '00000'. | |
| DateTimeImmutable::setTime | The microsecond parameter was added. | |
| DateTimeZone::listIdentifiers | countryCode is nullable now. | |
| array_column | Property visibility is now respected. Formerly, protected and private properties were read directly. | |
| array_rand | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function. | |
| curl_multi_setopt | Introduced CURLMOPT_PUSHFUNCTION. | |
| exif_imagetype | Added WebP support. | |
| file_get_contents | Support for negative offsets has been added. | |
| get_headers | The context parameter was added. | |
| getenv | The name can now be omitted to retrieve an associative array of all environment variables. | |
| getimagesize | Added WebP support. | |
| getopt | Added the rest_index parameter. | |
| grapheme_extract | Support for negative offsets has been added. | |
| grapheme_stripos | Support for negative offsets has been added. | |
| grapheme_strpos | Support for negative offsets has been added. | |
| hash_algos | Support for sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 and sha3-512 has been added. | |
| iconv_strpos | Support for negative offsets has been added. | |
| json_decode | An empty JSON key ("") can be encoded to the empty object property instead of using a key with value _empty_. | |
| json_encode | JSON_UNESCAPED_LINE_TERMINATORS flags was added. | |
| json_encode | serialize_precision is used instead of precision when encoding float values. | |
| list | It is now possible to specify keys in list. This enables destructuring of arrays with non-integer or non-sequential keys. | |
| long2ip | The parameter type of ip has been changed from string to int. | |
| mb_ereg | mb_ereg will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case. | |
| mb_ereg_replace | The function checks whether string is valid for the current encoding. | |
| mb_ereg_replace | The e modifier has been deprecated. | |
| mb_ereg_replace_callback | The function checks whether string is valid for the current encoding. | |
| mb_ereg_search_setpos | Support for negative offsets has been added. | |
| mb_eregi | mb_eregi will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case. | |
| mb_eregi_replace | The function checks whether string is valid for the current encoding. | |
| mb_eregi_replace | The e modifier has been deprecated. | |
| mb_regex_set_options | The "e" option now emits an E_DEPRECATED. | |
| mb_strimwidth | Support for negative starts and widths has been added. | |
| mb_stripos | Support for negative offsets has been added. | |
| mb_strpos | Support for negative offsets has been added. | |
| mt_rand | rand has been made an alias of mt_rand. | |
| mt_rand | mt_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_srand | srand has been made an alias of mt_srand. | |
| mt_srand | mt_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_new | options now also supports curve_name. | |
| openssl_decrypt | The tag and aad parameters were added. | |
| openssl_encrypt | The tag, aad and tag_length parameters were added. | |
| openssl_pkey_new | The 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_var | As 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_vars | Before 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_signal | As 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_handler | pcntl_signal_get_handler has been added. | |
| pg_fetch_all | The mode parameter was added. | |
| pg_last_notice | The mode parameter was added. | |
| pg_select | The mode parameter was added. | |
| rand | rand has been made an alias of mt_rand. | |
| session_start | session_start now returns false and no longer initializes $_SESSION when it failed to start the session. | |
| shuffle | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function. | |
| srand | srand has been made an alias of mt_srand. | |
| str_shuffle | The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function. | |
| stripos | Support for negative offsets has been added. | |
| strpos | Support for negative offsets has been added. | |
| substr_count | Support for negative offsets and lengths has been added. length may also be 0 now. | |
| tempnam | tempnam now emits a notice when falling back to the temp directory of the system. | |
| unpack | The optional offset has been added. | |
| unserialize | The 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::__toString | ReflectionType::__toString has been deprecated. | |
| SessionHandler::gc | Prior to this version, the function returned true on success. | |
| SessionHandlerInterface::gc | Prior to this version, the function returned true on success. | |
| 7.0.16 | dns_get_record | Added support for CAA record type. |
| fopen | The 'e' option was added. | |
| 7.0.15 | get_defined_functions | The exclude_disabled parameter has been added. |
| pack | The "e", "E", "g" and "G" codes were added to enable byte order support for float and double. | |
| 7.0.11 | iconv_substr | If 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.10 | imagetypes | IMG_WEBP added. |
| SplFileObject::getCsvControl | Added the escape character to the returned array. | |
| SQLite3::__construct | The filename can now be empty to use a private, temporary on-disk database. | |
| 7.0.9 | getenv | The local_only parameter has been added. |
| 7.0.7 | curl_multi_setopt | Introduced CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH and CURLMOPT_MAX_TOTAL_CONNECTIONS. |
| curl_setopt | Introduced 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.0 | array_column | The rows of array may now be objects as well as arrays. |
Как оценить надёжность найденного фрагмента
- Открыть официальную страницу и проверить, для какой версии она опубликована.
- Прочитать сигнатуру, описание результата, ошибки и changelog, а не только первый пример.
- Проверить PHP и расширение в своём SAPI; воспроизвести минимальный случай без секретов.
- Перенести идею в тест задачи и связать её с точной учебной главой.
Источники и обсуждения
- PHP Manual: About the manual
- PHP Manual: Formats
- PHP Manual: How we generate the formats
- PHP Manual: How to help improve the documentation
- PHP Manual: How to find more information about PHP
- PHP Manual: About user notes
- PHP Manual: PHP versions documented in this manual
- PHP Manual: How to read a function definition (prototype)
- PHP Manual: Translations
- PHP Manual: Creative Commons Attribution 3.0
- PHP Manual: Index listing
- PHP Manual: Example listing
- PHP Manual: Function and Method listing
- PHP Manual: Changelog
- PHP Manual: PHP Manual
- PHP Manual: Copyright
- PHP Manual: корневой индекс
Код и руководство с собой
Скачайте самостоятельные примеры с исходными данными, инструкциями и ожидаемыми результатами. Примеры HTTP и фрагменты для проекта помечены отдельно: им нужно указанное окружение.
Код не исполняется на сайте. Скачайте нужный пример и запускайте его в своём локальном окружении.
Материалы сверены 2026-10-12. Примеры и объяснения написаны для этого руководства; источники и обсуждения доступны в каждой главе.


