A classe stdClass
(PHP 4, PHP 5, PHP 7, PHP 8)
Introdução
Uma classe vazia genérica com propriedades dinâmicas.
Objetos desta classe podem ser instaciados com o operador new ou criados por conversores de tipo para o objeto. Muitas funções do PHP também criam instâncias desta classe, ex.: json_decode(), mysqli_fetch_object() ou PDOStatement::fetchObject().
Apesar de não implementar
os métodos mágicos __get()/__set(),
esta classe permite propriedades dinâmicas e não requer o atributo
#[\AllowDynamicProperties]
.
Esta não é uma classe base já que o PHP não possui um conceito de uma classe base universal. Entretanto, é possível criar uma classe customizada que se estende a partir de stdClass e como resultado herda a funcionalidade de propriedades dinâmicas.
Resumo da classe
Esta classe não tem métodos ou propriedades padrão.
Exemplos
Example #1 Criado como resultado de uma conversão de tipo em um objeto
<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);
O exemplo acima produzirá:
object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
Example #2 Criado como resultado da função json_decode()
<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));
O exemplo acima produzirá:
object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
Example #3 Declarando propriedades dinâmicas
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);
O exemplo acima produzirá:
object(stdClass)#1 (2) { ["foo"]=> int(42) ["1"]=> int(42) }