Converter objeto PHP em matriz associativa
-
Use a palavra-chave
arraypara fazer o Typecast do objetoStdClasspara converter em um array associativo em PHP -
Use o objeto
StdClassdentro de uma classe definida pelo usuário para converter o objeto em um array associativa em PHP -
Use as funções
json_encode()ejson_decode()para converter o objeto em um array associativo em PHP
Apresentaremos um método para converter o objeto PHP em um array associativo, lançando os objetos de StdClass usando a palavra-chave array. Usaremos a função var_dump() para exibir o array associativo.
A segunda abordagem demonstra outro método para converter o objeto PHP em um array associativo criando uma StdClass no construtor de uma classe definida pelo usuário. Vamos converter o objeto em um array associativo como no primeiro método usando a palavra-chave array. Este método segue a abordagem orientada a objetos.
Também apresentaremos outro método para converter o objeto em array associativo em PHP usando as funções json_encode() e json_decode(). Usaremos a StdClass para criar o objeto e as propriedades dinâmicas.
Use a palavra-chave array para fazer o Typecast do objeto StdClass para converter em um array associativo em PHP
Podemos criar a classe vazia StdClass para criar um objeto em PHP e usar o objeto para criar propriedades. O objeto da classe pode acessar diretamente as propriedades. Ele também pode criar propriedades dinâmicas para a classe. Podemos usar o objeto array para fazer o typecast do objeto em um array. A função var_dump() despeja as informações sobre o tipo e os valores do array.
Por exemplo, crie um objeto $object de StdClass usando o operador new. Crie duas propriedades usando o $object denominado car1 e car2. Atribua às propriedades os valores porsche e bugatti. Use a palavra-chave array para typecast a variável $object. Envolva a palavra-chave array com parênteses antes da variável $object e descarregue o valor usando a função var_dump(). O exemplo a seguir converte os objetos em um array associativa, conforme mostrado na seção de saída. Ele mostra os pares de chave e valor para cada elemento do array.
Código de exemplo:
#php 7.x
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>
Resultado:
array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }
Use o objeto StdClass dentro de uma classe definida pelo usuário para converter o objeto em um array associativa em PHP
Podemos criar uma instância de StdClass no construtor da classe e usar a palavra-chave array para converter o objeto da classe em um array associativo. Podemos criar uma classe e definir algumas propriedades dela. O construtor da classe inicializa as propriedades da classe para valores específicos. Podemos criar um objeto da StdClass e atribuí-lo a uma das propriedades da classe. O operador new, junto com a classe, invoca o construtor. Podemos usar a palavra-chave array logo antes da invocação para converter o objeto da classe em um array associativo.
Por exemplo, crie uma classe Motorcycle. Crie três propriedades de classe com o modificador de acesso private como $name, $color e $type. Crie um construtor da classe e dentro do construtor inicialize os valores das propriedades. Escreva Husky para name, white para color e crie um objeto da StdClass para type. Use a palavra-chave $this para inicializar as propriedades. Fora da classe, invoque a classe Motorcycle e use a palavra-chave array para fazer o typecast antes de invocar. Use a função var_dump() para despejar as informações sobre o array typecasted.
Código de exemplo:
#php 7.x
class Motorcycle{
private $name;
private $color;
private $type;
public function __construct(){
$this->name = "Husky";
$this->color = "white";
$this->type = new StdClass;
}
}
var_dump( (array) new Motorcycle );
Resultado:
array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }
Use as funções json_encode() e json_decode() para converter o objeto em um array associativo em PHP
A função json_encode() codifica um valor para o objeto JSON e a função json_decode() converte o objeto JSON em objeto PHP. O valor booleano, o segundo parâmetro da função json_decode(), indica o que o objeto JSON deve ser convertido. O valor true irá converter o objeto JSON em um array associativo, enquanto o valor false irá convertê-lo em um objeto PHP.
Por exemplo, crie um objeto da StdClass e atribua-o à variável $object. Nomeie dois valores da propriedade do objeto como Mustang e Manang e armazene-os nas variáveis place1 e place2. Use a função json_encode() na variável $object e armazene o valor na variável $json. Então, use a função json_decode() na variável $json e use o valor booleano true como o segundo parâmetro. Armazene o valor na variável $array. Descarregue a variável usando a função var_dump().
No exemplo abaixo, a variável $object contém o objeto StdClass. A função json_ecode() converte o objeto na string JSON. A função json_decode() converte a string JSON no array associativo.
Código de exemplo:
#php 7.x
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>
Resultado:
array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn