Creating default object from empty value¶
Description¶
This deprecation message is emitted in PHP 7.x to signal that an object was created without instantiation. In the illustration code, $x does not exist before assigning it a property a, and a value. The created object is stdClass.
This error is specific to the creation of the variable: if $x was set with null, a different message was emitted.
Example¶
<?php
$x->a = 1;
?>
Solutions¶
Explicitly create the object before accessing its properties.
Cast an array to
(object).Instanciate a
stdClass.
In more recent PHP versions, this error message is now Attempt to assign property “%s” on null.
Changed Behavior¶
This error may appear following an evolution in behavior, in previous versions. See creatingObjectOnNull.
Static Analysis¶
This error may be tracked down with the following static analysis rules: Structures/CreatingObjectOnNull.