|
Deprecated Features
PHP Core
Usage of dynamic properties
The creation of dynamic properties is deprecated, unless the class opts in by
using the #[\AllowDynamicProperties] attribute.
stdClass allows dynamic properties.
Usage of the __get()/__set() magic methods is not affected by this change.
A dynamic properties deprecation warning can be addressed by:
- Declaring the property (preferred).
-
Adding the
#[\AllowDynamicProperties] attribute to the class
(which also applies to all child classes).
-
Using a WeakMap if additional data needs to be
associated with an object which one does not own.
Relative callables
Callables that are not accepted by the $callable() syntax
(but are accepted by call_user_func) are deprecated.
In particular:
"self::method"
"parent::method"
"static::method"
["self", "method"]
["parent", "method"]
["static", "method"]
["Foo", "Bar::method"]
[new Foo, "Bar::method"]
This does not affect normal method callables such as
"A::method" or ["A", "method"] .
"${var}" and "${expr}" style interpolation
The "${var}" and "${expr}" style of string
interpolation is deprecated.
Use "$var"/"{$var}" and "{${expr}}" , respectively.
MBString
Usage of the QPrint , Base64 ,
Uuencode , and HTML-ENTITIES
'text encodings' is deprecated for all MBString functions.
Unlike all the other text encodings supported by MBString,
these do not encode a sequence of Unicode codepoints, but rather a sequence of raw bytes.
It is not clear what the correct return values for most MBString functions
should be when one of these non-encodings is specified.
Moreover, PHP has separate, built-in implementations of all of them;
for example, UUencoded data can be handled using
convert_uuencode/convert_uudecode.
SPL
The internal SplFileInfo::_bad_state_ex method
has been deprecated.
Standard
utf8_encode and utf8_decode
have been deprecated.
|