Функціональність, оголошена застарілою в PHP 8.0.x
Ядро PHP
-
Якщо за параметром за замовчуванням слід обов'язковий параметр, то значення за умовчанням не має сенсу. З PHP 8.0.0 такий порядок параметрів оголошений застарілим і може бути виправлений шляхом видалення значення за замовчуванням:
Loading...Одним із винятків із цього правила є параметри виду
Type $param = null
, де значення за умовчанням null робить тип явно обнулюваним. Це поки що дозволено, але натомість краще рекомендується використовувати явний тип nullable:Loading... -
Виклик get_defined_functions()з явно заданим значенням**
false
**вexclude_disabled
устарел и больше не имеет смысла . get_defined_functions()ніколи не повертатиме відключені функції.
Enchant
-
enchant_broker_set_dict_path() і enchant_broker_get_dict_path() оголошені застарілими, оскільки вони недоступні ні libenchant < 1.5 ні libenchant-2.
-
enchant_dict_add_to_personal()оголошено застарілою; використовуйте замість неїenchant_dict_add()
-
enchant_dict_is_in_session()оголошено застарілою; використовуйте замість неїenchant_dict_is_added()
-
enchant_broker_free() і enchant_broker_free_dict()оголошені застарілими; замість неї застосовуйте до об'єкта функцію unset.
-
Константа**
ENCHANT_MYSPELL
** і **ENCHANT_ISPELL
** оголошено застарілими.
LibXML
libxml_disable_entity_loader() оголошено застарілою. Оскільки тепер використовується libxml 2.9.0, в якому завантаження зовнішніх об'єктів за замовчуванням вимкнуто, тому використання цієї функції більше не потрібне для захисту від XXE-атак, якщо не використовується (досі вразлива) LIBXML_NOENT
. У цьому випадку рекомендується провести рефакторинг коду за допомогою libxml_set_external_entity_loader(), щоб придушити завантаження зовнішніх сутностей.
PGSQL / PDO PGSQL
-
Константа**
PGSQL_LIBPQ_VERSION_STR
тепер має те саме значення, що іPGSQL_LIBPQ_VERSION
**і тому оголошено застарілою. -
Псевдоніми функцій у модулі pgsql оголошені застарілими. Дивіться у списку, які функції слід використовувати замість них:
- pg_errormessage() → pg_last_error()
- pg_numrows() → pg_num_rows()
- pg_numfields() → pg_num_fields()
- pg_cmdtuples() → pg_affected_rows()
- pg_fieldname() → pg_field_name()
- pg_fieldsize() → pg_field_size()
- pg_fieldtype() → pg_field_type()
- pg_fieldnum() → pg_field_num()
- pg_result() → pg_fetch_result()
- pg_fieldprtlen() → pg_field_prtlen()
- pg_fieldisnull() → pg_field_is_null()
- pg_freeresult() → pg_free_result()
- pg_getlastoid() → pg_last_oid()
- pg_locreate() → pg_lo_create()
- pg_lounlink() → pg_lo_unlink()
- pg_loopen() → pg_lo_open()
- pg_loclose() → pg_lo_close()
- pg_loread() → pg_lo_read()
- pg_lowrite() → pg_lo_write()
- pg_loreadall() → pg_lo_read_all()
- pg_loimport() → pg_lo_import()
- pg_loexport() → pg_lo_export()
- pg_setclientencoding() → pg_set_client_encoding()
- pg_clientencoding() -> pg_client_encoding()
Бібліотека стандартних функцій
-
Функції порівняння сортування, що повертають**
true
** або **false
**тепер згенерує попередження про застарілі можливості, тому їх слід переписати, щоб вони повертали ціле число менше, рівне або більше нуля.Loading...
Zip
-
Використання порожнього файлу в ZipArchive оголошено застарілим. Libzip 1.6.0 більше не працює з пустими zip-архівами. Існуюче обхідне рішення буде видалено у наступній версії.
-
Процедурний API Zip оголошено застарілим. Замість нього використовуйтеZipArchive. Ітерацію по всіх записах можна виконати за допомогоюZipArchive::statIndex()та циклуfor :
Loading...
Reflection
-
ReflectionFunction::isDisabled()оголошено застарілим, тому що більше неможливо створитиReflectionFunctionдля вимкненої функції. Цей метод тепер завжди повертає**
false
** -
ReflectionParameter::getClass() ReflectionParameter::isArray() і ReflectionParameter::isCallable()оголошено застарілими. Замість них слід використовуватиReflectionParameter::getType()та APIReflectionType