Avatar ·

O que é stdClass em PHP e para que serve?

Olá, colegas! Sou um desenvolvedor PHP iniciante e, ao ler código alheio, frequentemente encontro uma construção estranha: `$obj = new stdClass();`. Depois, trabalham com esse objeto como se fosse normal, adicionando propriedades em tempo real: `$obj->name = 'John';`. Entendo que é uma classe embutida, mas não consigo captar sua essência.\n\nPor exemplo, estou acostumado a criar objetos através das minhas próprias classes:\n```php\nclass User {\n public $name;\n public $email;\n}\n$user = new User();\n$user->name = 'John';\n```\nMas para que serve `stdClass`? A documentação diz que é uma classe vazia, mas qual é a sua finalidade? Por que não posso simplesmente usar um array? Afinal, o array `['name' => 'John']` faz a mesma coisa.\n\nTambém vi que `stdClass` aparece ao converter JSON para objeto com `json_decode($json)`. Se não passar o segundo parâmetro `true`, retorna um objeto do tipo `stdClass`. Isso me deixou completamente confuso.\n\nExpliquem, por favor, em quais situações `stdClass` é realmente útil e quando é melhor evitá-lo? E existe