Функционал, объявленный устаревшим в PHP 7.2.x
Строки без кавычек
Строки без кавычек, которые не являются существующими глобальными константами, считались за строки.
Такое поведение раньше вызывало ошибку уровня E_NOTICE
, но теперь будет E_WARNING
.
В следующей основной версии PHP вместо ошибки будет выбрасываться исключение Error.
Функции png2wbmp() и jpeg2wbmp()
из модуля GD объявлены устаревшими и будут удалены в следующей основной версии PHP.
Вариант INTL_IDNA_VARIANT_2003
В модуле Intl объявлен устаревшим вариант
INTL_IDNA_VARIANT_2003
, который в настоящее время
используется по умолчанию для функций idn_to_ascii()
и idn_to_utf8(). В PHP 7.4 значение по умолчанию будет изменено
на INTL_IDNA_VARIANT_UTS46
, а в следующей основной версии PHP
константа INTL_IDNA_VARIANT_2003
будет полностью удалена.
Функция __autoload() была объявлена устаревшей, потому что она уступает
альтернативной функции spl_autoload_register() (из-за того, что не может иметь
очередь из функций автозагрузки), и ввиду того, что нет совместимости между этими двумя стилями автозагрузки.
Параметр track_errors
и переменная $php_errormsg
Когда параметр track_errors
включён в ini-настройках,
переменная $php_errormsg
создаётся в локальной области видимости,
когда происходит не фатальная ошибка. Учитывая, что предпочтительным способом получения такой информации об ошибке
является использование функции error_get_last(), данная возможность была объявлена устаревшей.
Учитывая проблемы c безопасностью данной функции (из-за того, что она является обёрткой над
eval()), эта функция объявлена устаревшей. Предпочтительной альтернативой является использование анонимных функций.
Параметр mbstring.func_overload
Учитывая проблемы совместимости строковых функций, используемых в окружениях
с включённым этим параметром, этот параметр объявлен устаревшим.
Приведение типа (unset)
Приведение любого выражения с использованием этого типа всегда приводит к null
, и поэтому
этот избыточный тип приведения объявлен устаревшим.
Без передачи второго параметра функции parse_str(),
параметры строки запроса будут заполнять текущую таблицу символов (будут доступны как переменные в локальной области видимости).
Учитывая последствия для безопасности из-за этого, использование
parse_str() без второго параметра объявлено устаревшим.
Эта функция всегда должна использоваться с двумя аргументами, так как
во второй аргумент сохраняются параметры строки запроса в качестве элементов массива.
Эта функция генерирует случайное число, основанное на диапазоне, который
вычисляется в зависимости от платформы, размера лимба (limb). Из-за этого
данная функция объявлена устаревшей. Предпочтительным способом генерации
случайного числа через модуль GMP является использование функций
gmp_random_bits() и
gmp_random_range().
Эта функция намного медленнее по итерации, чем использование обычного
foreach
, и создаёт проблемы с реализацией для некоторых
изменений языка, поэтому данная функция объявлена устаревшей.
assert() со строковым аргументом
Использование assert() со строковым параметром требовало
передачи строки для исполнения в eval(). Учитывая возможность удалённого выполнения кода,
использование assert() со строковым аргументом теперь
объявлено устаревшим в пользу использования логических выражений.
Аргумент $errcontext
в обработчиках ошибок
Аргумент $errcontext
содержит все локальные переменные в месте,
где была произошла ошибка. Учитывая редкое его использование и проблемы, связанные с
внутренней оптимизацией, этот параметр объявлен устаревшим. Вместо этого рекомендуется использовать отладчик для получения информации об ошибках.