¿Qué es stdClass en PHP y para qué sirve?
¡Hola, colegas! Soy un desarrollador PHP principiante, y al leer código ajeno a menudo me encuentro con una construcción extraña: `$obj = new stdClass();`. Luego trabajan con este objeto como si fuera normal, añadiendo propiedades sobre la marcha: `$obj->name = 'John';`. Entiendo que es una clase incorporada, pero no logro captar su esencia.
Por ejemplo, estoy acostumbrado a crear objetos a través de mis propias clases:
```php
class User {
public $name;
public $email;
}
$user = new User();
$user->name = 'John';
```
Pero entonces, ¿para qué sirve `stdClass`? En la documentación dice que es una clase vacía, pero ¿por qué es necesaria? ¿Por qué no puedo simplemente usar un array? Después de todo, el array `['name' => 'John']` hace lo mismo.
También he visto que `stdClass` aparece al convertir JSON a objeto mediante `json_decode($json)`. Si no se pasa el segundo parámetro `true`, se devuelve un objeto de tipo `stdClass`. Esto me confundió por completo.
Expliquen, por favor, en qué situaciones `stdClass` es realmente útil, y cuándo es mejor evitarlo. ¿Y existe alguna alternativa?