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