Converti oggetto PHP in array associativo

Subodh Poudel 8 luglio 2021
  1. Usa la parola chiave array per digitare l’oggetto StdClass da convertire in un array associativo in PHP
  2. Utilizzare l’oggetto StdClass all’interno di una classe definita dall’utente per convertire l’oggetto in un array associativo in PHP
  3. Usa le funzioni json_encode() e json_decode() per convertire l’oggetto in un array associativo in PHP
Converti oggetto PHP in array associativo

Introdurremo un metodo per convertire l’oggetto PHP in un array associativo typecasting gli oggetti di StdClass usando la parola chiave array. Useremo la funzione var_dump() per visualizzare l’array associativo.

Il secondo approccio mostra un altro metodo per convertire l’oggetto PHP in un array associativo creando una StdClass nel costruttore di una classe definita dall’utente. Convertiremo l’oggetto nell’array associativo come nel primo metodo usando la parola chiave array. Questo metodo segue l’approccio orientato agli oggetti.

Introdurremo anche un altro metodo per convertire l’oggetto in array associativo in PHP utilizzando le funzioni json_encode() e json_decode(). Useremo la StdClass per creare l’oggetto e le proprietà dinamiche.

Usa la parola chiave array per digitare l’oggetto StdClass da convertire in un array associativo in PHP

Possiamo creare la classe vuota StdClass per creare un oggetto in PHP e utilizzare l’oggetto per creare proprietà. L’oggetto della classe può accedere direttamente alle proprietà. Può anche creare proprietà dinamiche per la classe. Possiamo usare l’oggetto array per digitare l’oggetto in un array. La funzione var_dump() scarica le informazioni sul tipo e sui valori dell’array.

Ad esempio, creare un oggetto $object della StdClass utilizzando l’operatore new. Crea due proprietà usando il $oggetto chiamato car1 e car2. Assegnare le proprietà con i valori porsche e bugatti. Usa la parola chiave array per digitare la variabile $object. Avvolgi la parola chiave array tra parentesi prima della variabile $object e scarica il valore usando la funzione var_dump(). L’esempio seguente converte gli oggetti in un array associativo, come mostrato nella sezione di output. Mostra le coppie chiave e valore per ogni elemento dell’array.

Codice di esempio:

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

Produzione:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

Utilizzare l’oggetto StdClass all’interno di una classe definita dall’utente per convertire l’oggetto in un array associativo in PHP

Possiamo creare un’istanza della StdClass nel costruttore della classe e usare la parola chiave array per convertire l’oggetto delle classi in un array associativo. Possiamo creare una classe e definirne alcune proprietà. Il costruttore della classe inizializza le proprietà della classe su valori specifici. Possiamo creare un oggetto della StdClass e assegnargli una delle proprietà della classe. L’operatore new, insieme alla classe, invoca il costruttore. Possiamo usare la parola chiave array subito prima dell’invocazione per convertire l’oggetto della classe in un array associativo.

Ad esempio, crea una classe Motorcycle. Crea tre proprietà di classe con il modificatore di accesso private come $name, $color e $type. Creare un costruttore della classe e all’interno del costruttore inizializzare i valori delle proprietà. Scrivi Husky per name, white per color e crea un oggetto della StdClass per tipe. Usa la parola chiave $this per inizializzare le proprietà. Al di fuori della classe, invoca la classe Motorcycle e usa la parola chiave array per eseguire il typecast prima di invocare. Utilizzare la funzione var_dump() per scaricare le informazioni sull’array typecast.

Codice di esempio:

#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 );

Produzione:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

Usa le funzioni json_encode() e json_decode() per convertire l’oggetto in un array associativo in PHP

La funzione json_encode() codifica un valore nell’oggetto JSON e la funzione json_decode() converte l’oggetto JSON nell’oggetto PHP. Il valore booleano, il secondo parametro della funzione json_decode(), indica cosa deve essere convertito l’oggetto JSON. Il valore true convertirà l’oggetto JSON in un array associativo, mentre il valore false lo convertirà in un oggetto PHP.

Ad esempio, creare un oggetto della StdClass e assegnarlo alla variabile $object. Denominare due valori della proprietà dell’oggetto come Mustang e Manang e memorizzarli nella variabile place1 e place2. Usa la funzione json_encode() sulla variabile $object e memorizza il valore nella variabile $json. Quindi, usa la funzione json_decode() sulla variabile $json e usa il valore booleano true come secondo parametro. Memorizza il valore nella variabile $array. Scarica la variabile usando la funzione var_dump().

Nell’esempio seguente, la variabile $object contiene l’oggetto StdClass. La funzione json_ecode() converte l’oggetto nella stringa JSON. La funzione json_decode() converte la stringa JSON nell’array associativo.

Codice di esempio:

#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);
?>

Produzione:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh Poudel avatar Subodh Poudel avatar

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

Articolo correlato - PHP Object