Una breve introducción a como me encontré stdClass

Hoy me he encontrado con la clase stdClass al devolver el resultado de una consulta de CodeIgniter.
Y si has llegado a aquí es porque ya has pasado por stackoverflow sin demasiada fortuna :).
Quien me lea habitualmente el blog sabrá que estoy aprendiendo a utilizar CodeIgniter 3 por varias razones.
La más importante para aprender un Framework accesible y con una buena curva de aprendizaje.

Que es stdClass

En PHP existe una clase que se stdClass esta clase es una clase vacía, no tiene absolutamente nada, ni propiedades ni métodos ni nada de nada.
Realmente en mi inexperiencia no le encuentro ninguna utilidad, los datos que se guardan en esta clase.
Bien se podrían guardar en un array, variable de session o cookie…
Pero la realidad es que CodeIgniter devuelve los resultados con esta clase y me ha costado un pelín aprender cómo se utiliza.

Como se identifica stdClass y accedo a sus datos

Para identificar una variable lo ideal es utilizar Var_dum()
Esta función nativa de PHP, nos da información de una variable
tipo de variable, si esta vacía, contenido de esta si es un objeto o clase etc..
vamos a jugar un poco con el código PHP para que se vea claro

Creando un objeto stdClass simple.

$ejemplo_stdClass = new stdClass(); // con esto instanciamos y llamamos a la clase stdClass
$ejemplo_stdClass ->PaginaWeb='esunbichito.com';

$ejemplo_stdClass ->autor='caeron';
echo var_dump($ejemplo_stdClass); 

Esto nos devuelve lo siguiente por pantalla object(stdClass)#19 (2) { ["PaginaWeb"]=> string(15) "esunbichito.com" ["autor"]=> string(6) "caeron" }
Nada mas empezar ya nos da muchas pistas, fíjate en las primeras palabras object(stdClass) nos dice que es un objeto stdClass.
Bien perfecto sabemos que es un objeto y como buen objeto para acceder a su contenido necesitamos ->
Después nos dice el contenido de ese objeto.
Tiene un campo string de 15 caracteres llamado PaginaWeb y que tiene el valor esunbichito.com
Además también tiene otra string de 6 caracteres llamada autor con el valor Caeron.
Vamos a acceder a este contenido.

Echo $ejemplo_stdClass ->autor // echo para imprimir variable y con -> marcamos lo que queremos mostrar
echo "<br>el contenido de autor: ".$ejemplo_stdClass ->autor;
echo "<br>el contenido de PaginaWeb: ".$ejemplo_stdClass ->PaginaWeb;

¿Como accedo cuando stdClass es un array?

En mi caso sucedió que tras hacer una consulta, la consulta me devolvía un array con el resultado en un objeto stdClass.
array(1) { [0]=> object(stdClass)#21 (2) { ["User_Login"]=> string(2) "caeron" ["User_Password"]=> string(3) "222" } }
Como antes al hacer un var_dum(), me devolvió una información valiosa
Que es un array en un objeto stdClass
Bien la única diferencia con el anterior ejemplo, es que las arrays están numeradas, así pues le tenemos que decir el valor de la array a acceder y donde queremos acceder.
echo "
el dato es: ". $resultados[0]->User_Password;

Si fuera un array multidimensional en vez de 0 seria 1,2,3 o lo que fuera necesario