Створення динамічних властивостей застаріло, якщо в класі не використано
атрибут #[\AllowDynamicProperties]. В
stdClass динамічні властивості — дозволені. Ця зміна
не впливає на використання магічних методів __get()/__set(). Попередження про застаріле використання
динамічних властивостей можна вимкнути:
#[\AllowDynamicProperties] до класу (що
також діє і для класів-нащадків).
Назва виклику, що не дозволена з синтаксисом $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}}" відповідно.
Використання "текстових кодувань" QPrint,
Base64, Uuencode і
HTML-ENTITIES застаріле для всіх функцій MBString.
На відміну від інших кодувань тексту, які підтримує MBString, вони не
кодують послідовність кодових точок Unicode, а скоріше послідовність байтів.
Не зрозуміло, якими мають бути значення, що повертаються більшістю функцій
MBString, коли використовуються ці псевдо-кодування. Більше того, в PHP є
окремі реалізації для кожного з них. Наприклад, UU-кодовані дані можна
опрацювати функціями
convert_uuencode()/convert_uudecode().
Внутрішній метод SplFileInfo::_bad_state_ex() застарів.
Функції utf8_encode() та utf8_decode() застаріли.