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

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

Version | Function | Description
--- | --- | ---
8.5.0 | chr | Передача целочисленных значений за пределами интервала [0, 255] устарела.
| ord | Передача строки размером больше одного байта устарела.
| setlocale | Передача целого числа 0 в качестве аргумента locales больше не поддерживается и теперь выбрасывает ошибку TypeError.
8.4.0 | str_getcsv | Вызов функции без явной передачи значения в параметр escape устарел.
| str_getcsv | Функция теперь подражает поведению функций fgetcsv и fputcsv и выбрасывает ошибку ValueError, если в параметры separator, enclosure или escape передали недопустимое значение.
| strcspn | До PHP 8.4.0 при передаче в параметр characters пустой строки поиск ошибочно останавливался на первом NUL-байте в аргументе string.
8.3.0 | number_format | Добавили ​​обработку отрицательных значений для параметра decimals.
| str_getcsv | Вместо строки с одним нулевым байтом возвращается пустая строка, если последнее поле содержит только незавершённый символ ограничения значения поля. enclosure.
| strrchr | Добавлен параметр before_needle.
| strtok | Функция теперь выдаёт ошибку уровня E_WARNING, когда параметр token не указали.
8.2.0 | lcfirst | Приведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
| 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.
| ucfirst | Приведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
| ucwords | Приведение к единому регистру больше не зависит от региональных настроек, которые установили функцией setlocale. Преобразовываются только символы кодировки ASCII.
| utf8_decode | Функция устарела.
| utf8_encode | Функция устарела.
8.1.0 | get_html_translation_table | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
| 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.
8.0.0 | convert_cyr_string | Функцию удалили.
| convert_uuencode | До этой версии при попытке преобразовать пустую строку возвращалось false без особой причины.
| count_chars | До этой версии функция возвращала false, если возникала ошибка.
| crypt | Параметр salt больше необязателен.
| explode | Теперь функция explode выбрасывает исключение TypeError, если разделитель separator — пустая строка "". Раньше функция explode вместо исключения возвращала false.
| 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.
| hebrevc | Функцию удалили.
| html_entity_decode | Параметр encoding теперь принимает значение null.
| htmlentities | Параметр encoding теперь принимает значение null.
| implode | Функция больше не поддерживает передачу разделителя separator после массива array.
| levenshtein | До этой версии levenshtein нужно было вызывать с двумя или пятью аргументами.
| levenshtein | До этой версии, levenshtein возвращала значение -1, если одна из строк аргумента более 255 символов.
| metaphone | Функция возвращала false в случае возникновения ошибки.
| money_format | Функцию удалили.
| number_format | До этой версии функция number_format принимала один, два или четыре параметр, но не три.
| parse_str | Параметр result стал обязательным.
| 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.
| soundex | До этой версии при вызове функции с пустой строкой возвращалось значение false без особой причины.
| 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.
| 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.
| substr | Параметр length теперь принимает значение null. При явной установке для параметра length значения null функция возвращает подстроку, которая заканчивается в конце строки; раньше возвращалась пустая строка.
| substr | Функция возвращает пустую строку там, где раньше возвращала false.
| substr_compare | Параметр length теперь принимает значение null.
| substr_count | Параметр length теперь принимает значение null.
| substr_replace | length теперь допускает значение null.
| 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.
7.4.0 | chr | Функция теперь выдаёт предупреждение, когда приводит к 0 значение параметра codepoint, которое невозможно интерпретировать как кодовую точку.
| convert_cyr_string | Функция устарела.
| hebrevc | Функция устарела.
| implode | Передача разделителя separator после массива array, т. е. сигнатура, которая досталась в наследство, устарела.
| money_format | Функция устарела. Вместо неё пользуются методом NumberFormatter::formatCurrency.
| str_getcsv | Функция теперь интерпретирует пустой параметр escape как требование отключить внутренний механизм экранирования. Раньше пустую строку функция рассматривала как значение по умолчанию для параметра.
| strip_tags | Параметр allowed_tags теперь как альтернативу принимает массив (array).
7.3.5 | substr_compare | Параметр offset теперь может равняться параметру haystack.
7.3.0 | stripos | Передача целого числа (int) в параметр needle устарела.
| stristr | Передача целого числа (int) в параметр needle устарела.
| strpos | Передача целого числа (int) в параметр needle устарела.
| strrchr | Передача целого числа (int) в needle объявлена устаревшей.
| strripos | Передача целого числа (int) в needle устарела.
| strrpos | Передача целого числа (int) в параметр needle устарела.
| strstr | Передача целого числа (int) в параметр needle устарела.
7.2.18 | substr_compare | Параметр offset теперь может равняться параметру haystack.
7.2.0 | number_format | Функцию number_format изменили, чтобы не возвращать значение -0. Раньше функция иногда возвращала значение -0, если параметр num равнялся -0.01.
| parse_str | Вызов функции parse_str без второго аргумента теперь выдаёт ошибку уровня E_DEPRECATED.
| utf8_decode | Функцию перенесли из модуля XML в ядро PHP. В предыдущих версиях функция была доступна только при установленном модуле XML.
| utf8_encode | Функцию перенесли из модуля XML в ядро PHP. В предыдущих версиях функция была доступна только при установленном модуле XML.
7.1.0 | str_shuffle | Внутренний алгоритм генерации случайных чисел изменился с функции rand библиотеки libc на генератор на базе Вихря Мерсе́на.
| stripos | Добавили поддержку отрицательных значений параметром offset.
| strpos | Добавили поддержку отрицательных значений параметром offset.
| substr_count | Добавили поддержку отрицательных значений параметрами offset и length. Параметр length теперь допускает значение 0.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open