Fala galera do blog Código Master. Tudo 100% ?
Bom. Hoje eu vou falar um pouco sobre a StdClass do PHP. Já ouviu falar? Não? “Oxi”. Bora conhecer então.
Quem é essa tal de StdClass? Bom. Resposta curta, seria, uma classe pré-definida do PHP. O que não nos diz muita coisa. Em resposta mais longa um pouco, diz-se que StdClass é uma classe que existe no PHP, totalmente vazia, que você pode utilizá-la para criar novos objetos, dinamicamente, de acordo com a necessidade, atribuindo a ela, métodos e propriedades.
Essa classe é a base, por exemplo utilizada pelo próprio PHP, para criar objetos a partir de conversões realizadas por nós, os programadores.
Bom. Quando convertemos um array, por exemplo, em qualquer outro objeto, na verdade, está sendo utilizada essa maravilhosa StdClass, para fazer esse processo.
Ok. Agora que já sabemos para que serve, como utilizamos ao nosso bel-prazer? Simples.
Veja como criar um novo objeto a partir do nome e idade de uma pessoa. Confira:
1 2 3 |
$obj = new StdClass; // criamos um objeto do tipo StdClass (vazio claro). $obj->nome = 'Claudeci Goularte'; // criamos e já atribuídos um atributo nome, recebendo o valor 'Claudeci Goularte' $obj->idade = 32; // Outro atributo. Idade 32 (com carinha de 18 rsrsr) |
Bom nisso, já temos um novo objeto, com dois atributos, nome e idade.
1 |
var_dump($obj); |
O comando var_dump, irá imprimir e confirmar o que falamos anteriormente. Veja:
1 2 3 4 |
object(stdClass)#1 (2) { ["nome"]=> string(17) "Claudeci Goularte" ["idade"]=> int(31) } |
Podemos exibir os dados desde objeto, apenas chamando seus atributos, confira:
1 |
echo "Meu nome é " . $obj->nome . ", e tenho " . $obj->idade . " anos."; |
Para deixar mais “bonitinho”, podemos utilizar a função printtf(). Veja:
1 |
printf("Meu nome é %s, e tenho %s anos.", $obj->nome, $obj->idade); |
Ambos os casos, irá imprimir na tela, “Meu nome é Claudeci Goularte, e tenho 32 anos.“.
Fico por aqui galera. Grande abraço. Att.
Claudeci, tudo bem? Primeiramente obrigado pelo tutotial, realmente muito simple e direto. Mas eu tenho uma dúvida, assumindo que eu esteja pegando o meu stdclass object de outra fonte e não conheça a estrutura do mesmo, como faço pra obter os valores de seu atributo? Ou seja, no seu exemplo, existe algum método que o retorno seja as chaves: [“nom”, “idade”]? Obrigado!
Sim. Pode utilizar o array. Exemplo: $var = (object) array(“nome” => “claudeci”);