PHP 8.4.1 Released!

Deprecated Features

PHP Core

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

Створення динамічних властивостей застаріло, якщо в класі не використано атрибут #[\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() застаріли.

add a note

User Contributed Notes

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