Avatar ·

¿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?