Como Converter Arrays em Objetos e Vice-Versa Usando Uma Linha de Código
Nem sempre o que temos é o que queremos, e trabalhar com arrays e objetos simultaneamente acaba se tornando chato, eu pessoalmente não gosto muito de arrays, principalmente quando é para exibir na tela os resultados de uma pesquisa do banco de dados ou coisa do tipo.
Já vi em muitos código fontes, funções um tanto que imensas para realizar a tarefa de conversão de tipos – arrays para objetos ou objetos para arrays. Mas o que muita gente não sabe é que existe um atalho para isto, simples e rápido. Vejamos um exemplo:
$dados = array('nome' =>'Mateus', 'sexo'=>'Masculino'); echo $dados['nome']; //Resultado: Mateus echo $dados->nome; //Resultado: Erro $dados = (object) $dados; //É aqui que tudo funciona... echo $dados->nome; //Resultado: Mateus
Anteriormente tinhamos uma array – $dados -, que em um “passe de mágica” virou um objeto. Para converter um objeto em uma array o processo é bem simples também:
$array = (array) $objeto;
Também é possível formatar outros tipos, como string, integer ou float:
$numero = (float) $numero; $boolean = (boolean) $boolean; $string = (string) $string; ....
Tecnicamente falando, este processo é chamado de Type Casting, ou Tipo de Vazamento em português e como o próprio nome já diz, ele converte o modo de vazamento (ou distribuição) de um elemento. Para saber um pouco mais, veja no manual do PHP sobre Type Casting.
Se você não sabe o tipo do elemento, use a função var_dump ou a função para debug. Até mais.