(PHP 4, PHP 5, PHP 7, PHP 8)
Una clase genérica vacía con propiedades dinámicas.
Los objetos de esta clase pueden ser instanciados con el operador new o creados utilizando la conversión en objeto. Varias funciones PHP crean asimismo instancias de esta clase, por ejemplo json_decode(), mysqli_fetch_object() o PDOStatement::fetchObject().
Aunque no implementa
__get()/__set()
esta clase permite propiedades dinámicas y no requiere el atributo
#[\AllowDynamicProperties]
.
No es una clase base porque PHP no tiene un concepto de clase base universal. Sin embargo, es posible crear una clase personalizada que extienda stdClass y que herede así la funcionalidad de las propiedades dinámicas.
Esta clase no tiene métodos ni propiedades por omisión.
Ejemplo #1 Creado a partir de una conversión de tipo en objeto
<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);
El resultado del ejemplo sería:
object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
Ejemplo #2 Creado como resultado de json_decode()
<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));
El resultado del ejemplo sería:
object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
Ejemplo #3 Declaración de propiedades dinámicas
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);
El resultado del ejemplo sería:
object(stdClass)#1 (2) { ["foo"]=> int(42) ["1"]=> int(42) }