Застаріла функціональність
Ядро PHP
РеализацияSerializableбез**__serialize()** і __unserialize()
Якщо не потрібна підтримка версій PHP менше 7.4, повинні бути реалізовані лише ці два магічні методи, інакше потрібно реалізувати як методи інтерфейсу, так і магічні методи.
Передача**null
** параметрам вбудованих функцій, які не допускають значення NULL
Не рекомендується передавати значення NULL скалярним параметрам вбудованих функцій. В іншому випадку тепер буде викликане повідомлення. Таке обмеження було введено, щоб краще відповідати роботі функцій користувача, де параметри, що допускають значення NULL, повинні бути для цього явно позначені.
Loading...
Неявна несумісність перетворення float до int
Тепер потрібно уникати неявного перетворення числа з плаваючою точкою (float) до цілого числа (int), що призводить до втрати точності. Це впливає на ключі масиву (array), оголошення цілих (int) типів у примусовому режимі та операторів, що працюють з цілими числами (int).
Loading...
Виклик static-елемента у трейтах
Виклик static-методу або доступ до static-властивості безпосередньо в трейті застарів. До статичних методів та властивостей слід звертатися лише у класі, який використовує трейт.
Возврат не массива (array) из**__sleep()**
Возвращаемое значение__sleep(), що не є масивом, тепер згенерує повідомлення.
Повернення значення за посиланням функції void
Loading...
Така функція збиває з пантелику, тому тепер видасть наступний E_NOTICE
Only variable references should be returned by reference
(За посиланням повинні повертатися лише посилання змінні).
Автовивификация из**false
**
Автовівіфікація - це створення нового масиву (array) при додаванні нового значення. Автовівіфікація заборонена для скалярних значень, проте false
був винятком. Тепер така поведінка застаріла.
Loading...
Зауваження :
Автовивификация из**
null
** та невизначеного значення як і раніше дозволена: Loading...
ctype
Перевірка нерядкових аргументів
Передача нерядкового аргументу застаріла. У майбутньому аргумент інтерпретуватиметься як рядок замість коду ASCII. Залежно від передбачуваної поведінки, аргумент повинен бути приведений до рядка (string) явним чином або через виклик chr(). Ця зміна стосується всіх функцій ctype_*()
Date
Функції date_sunrise() і date_sunset()устарели в пользуdate_sun_info()
Функцияstrptime() застаріла. Замість неї використовуйте date_parse_from_format() (для синтаксичного аналізу, що не залежить від мовного стандарту) або IntlDateFormatter::parse() (Для синтаксичного аналізу, що залежить від мовного стандарту).
Функцияstrftime() і gmstrftime()устарели. Используйте вместо них функциюdate() (для форматування, що не залежить від мовного стандарту) або метод IntlDateFormatter::format() (Для форматування, що залежить від мовного стандарту).
Фільтр
Фільтри **FILTER_SANITIZE_STRING
** і **FILTER_SANITIZE_STRIPPED
**устарели.
INI-директиваfilter.defaultустарела.
GD
Параметрnum_points
функції imagepolygon() imageopenpolygon() і imagefilledpolygon()устарел.
Хешування
Функції mhash() mhash_keygen_s2k() mhash_count() mhash_get_block_size() і mhash_get_hash_name() застаріли. Замість них використовуйте функції hash_*()
IMAP
Константа**NIL
** застаріла. Замість неї використовуйте
Intl
Виклик IntlCalendar::roll()с логическим значением (bool) устарел. Используйте и-1
замість **true
** і **false
**соответственно.
Багатобайтові рядки
Виклик mb_check_encoding() без жодних аргументів застарів.
MySQLi
Властивість mysqli_driver::$driver_version застаріло. Воно було неактуальним, використовуйте замість нього PHP_VERSION_ID
Виклик методу mysqli::get_client_info() або mysqli_get_client_info() з аргументом mysqli
устарел. Используйтеmysqli_get_client_info() без жодних аргументів, щоб отримати інформацію про версію клієнтської бібліотеки.
Методmysqli::init() застарів. Замініть дзвінки parent::init()наparent::__construct()
OCI8
INI-директиваoci8.old_oci_close_semanticsустарела.
ODBC
Функцияodbc_result_all()устарела.
PDO
Режим вибірки **PDO::FETCH_SERIALIZE
**устарел.
PgSQL
Функциямpgsql_*()
Тепер потрібно явно передавати параметр connection.
SOAP
Параметрssl_method
вSoapClient::__construct()устарел в пользу параметров контекста потока SSL.
Стандартні функції
Виклик key() current() next() prev() reset() або end() з об'єктами (object) застарів. Або спочатку перетворіть об'єкт (object) на масив (array) за допомогою функції get_mangled_object_vars(), або використовуйте методи, що надаються класом, що реалізує інтерфейс Iterator, наПриклад,ArrayIterator
INI-директиваauto_detect_line_endings застаріла. При необхідності обробіть розриви рядків "\r"
вручную.
Константи FILE_BINARY
і FILE_TEXT
застаріли. Вони ніколи не мали сенсу.