Застаріла функціональність

Ядро PHP

Використання динамічних властивостей

Створення динамічних властивостей оголошено застарілим, за винятком якщо клас не обробляє їх використання за допомогою атрибуту #[\AllowDynamicProperties]. На екземплярах stdClass як і раніше, можна використовувати динамічні властивості. Зміна не впливає на використання магічних методів __get() __set(). Попередження про старіння динамічних властивостей можна усунути за допомогою:

  • Оголошення якості (найкраще).
  • Додавання атрибуту#[\AllowDynamicProperties]до класу (який також застосовується до всіх дочірніх класів).
  • ВикористанняWeakMap, якщо потрібно пов'язати додаткові дані з об'єктом, який не належить користувачеві.

Виклики методів із відносним ім'ям

Викликані методи, які не відповідають синтаксису $callable() (але працюють з call_user_func()), оголошені застарілими. Зокрема:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]

Ця зміна не впливає на звичайні методи, що викликаються, такі як "A::method"или["A", "method"]

Интерполяция вида"${var}"и"${expr}"

Стиль інтерполяції рядків "${var}"и"${expr}" оголошено застарілим. Використовуйте "$var"/"{$var}"и"{${expr}}"соответственно.

MBString

Использование кодировок текстаQPrint Base64 UuencodeиHTML-ENTITIES оголошено застарілим всім функцій MBString. На відміну від інших текстових кодувань, що підтримуються MBString, ці кодування не кодують послідовність кодових точок Unicode, а лише послідовність необроблених байтів. Неясно, якими повинні бути правильні значення, що повертаються для більшості функцій MBString, якщо вказано одне з цих кодувань. Більше того, у PHP є вбудовані реалізації всіх цих кодувань; наприклад, UU-закодовані дані можна обробляти за допомогою функцій convert_uuencode() convert_uudecode()

SPL

Внутренний методSplFileInfo::_bad_state_ex() оголошено застарілим.

Стандартні функції

Функції utf8_encode() і utf8_decode() оголошено застарілими.