Функционал, объявленный устаревшим в PHP 7.2.x

Строки без кавычек

Строки без кавычек, которые не являются существующими глобальными константами, считались за строки. Такое поведение раньше вызывало ошибку уровня E_NOTICE, но теперь будет E_WARNING. В следующей основной версии PHP вместо ошибки будет выбрасываться исключение Error.

<?php

var_dump
(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() и jpeg2wbmp()

Функции 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()

Функция __autoload() была объявлена устаревшей, потому что она уступает альтернативной функции spl_autoload_register() (из-за того, что не может иметь очередь из функций автозагрузки), и ввиду того, что нет совместимости между этими двумя стилями автозагрузки.

Параметр track_errors и переменная $php_errormsg

Когда параметр track_errors включён в ini-настройках, переменная $php_errormsg создаётся в локальной области видимости, когда происходит не фатальная ошибка. Учитывая, что предпочтительным способом получения такой информации об ошибке является использование функции error_get_last(), данная возможность была объявлена устаревшей.

Функция create_function()

Учитывая проблемы c безопасностью данной функции (из-за того, что она является обёрткой над eval()), эта функция объявлена устаревшей. Предпочтительной альтернативой является использование анонимных функций.

Параметр mbstring.func_overload

Учитывая проблемы совместимости строковых функций, используемых в окружениях с включенным этим параметром, этот параметр объявлен устаревшим.

Приведение типа (unset)

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

parse_str() без второго параметра

Без передачи второго параметра функции parse_str(), параметры строки запроса будут заполнять текущую таблицу символов (будут доступны как переменные в локальной области видимости). Учитывая последствия для безопасности из-за этого, использование parse_str() без второго параметра объявлено устаревшим. Эта функция всегда должна использоваться с двумя аргументами, так как во второй аргумент сохраняются параметры строки запроса в качестве элементов массива.

Функция gmp_random()

Эта функция генерирует случайное число, основанное на диапазоне, который вычисляется в зависимости от платформы, размера лимба (limb). Из-за этого данная функция объявлена устаревшей. Предпочительным способом генерации случайного числа через расширение GMP является использование функций gmp_random_bits() и gmp_random_range().

Функция each()

Эта функция намного медленнее по итерации, чем использование обычного foreach, и создаёт проблемы с реализацией для некоторых изменений языка, поэтому данная функция объявлена устаревшей.

assert() со строковым аргументом

Использование assert() со строковым параметром требовало передачи строки для исполнения в eval(). Учитывая возможность удалённого выполнения кода, использование assert() со строковым аргументом теперь объявлено устаревшим в пользу использования логических выражений.

Аргумент $errcontext в обработчиках ошибок

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

Функция read_exif_data()

Псевдоним read_exif_data() был объявлен устаревшим в пользу функции exif_read_data().

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top