Sabato
19
Marzo 2022
Come convertire oggetti PHP in Array? Quando lavoriamo con gli oggetti (object) ad esempio richiamando post o eventi dal Graph API di Facebook, spesso cerchiamo una sintassi più chiara e pulita.
Convertendo gli oggetti in array avremo una sintassi più semplice da leggere e da richiamare in altre parti del nostro codice.
Quando facciamo una chiamata per recuperare i post della pagina Facebook tramite il Graph API otterremo in risposta un oggetto contenente stringhe, array ma anche altri oggetti! Richiamare i vari elementi per usarli nel resto del codice non è sempre così facile.
Per convertire oggetti in array PHP basta creare un nuovo Array e utilizzare il type casting dichiarando (array) prima dell’oggetto:
Immaginiamo di voler convertire l’oggetto $obj nell’array chiamato $arr.
Stampando un var_dump() dell’oggetto $obj avremmo una risposta simile a questa:
object(my_obj_name) #8417 (1) {
["items":protected]=> array(2) {
[“first_elem”]=>string(15) “my_string_value”
[“second_elem”]=>string(15) “my_string_value”
}
}
Dichiarando il tipo di dato (array) è possibile convertire facilmente l’oggetto:
$arr = (array) $obj;
Ora stampano a video var_dump() dell’array $arr otterremo un risultato del genere:
array(1) { [0]=> array(2) { ['first_elem']=> string(15) "my_string_value" ['second_elem']=> string(15) "my_string_value" } }
Ora ci basterà richiamare gli elementi dell’array nel classico modo:
$elem_1 = $arr[0]['first_elem'];
// result: $elem_1 = "my_string_value";
Se gli oggetti contengono a loro volta degli altri oggetti allora potremmo convertire anch’essi in array, sempre dichiarando il tipo di valore (array)
Se volessimo convertire Array in oggetti basterà dichiarare il tipo di valore (object) allo stesso modo degli esempi precedenti:
$obj = (object) $arr;
Allo stesso modo potremmo convertire stringhe in numeri interi e viceversa.
Basterà usare i type casting (int), (float) e (string).
Per convertire la stringa “5” in numero basterà utilizzare il tipo (int) nel seguente modo:
$var_string = "5";
$var_int = (int) $var_string;
//Output = 5 (numero intero)
Allo stesso modo potremmo convertire numeri decimali con il tipo (float) e numeri in stringhe con il tipo (string).
Questo metodo però non è il più pulito, infatti bisognerebbe utilizzare le funzioni integrate json_. Ti lascio una guida dettagliata su json e php se vuoi approfondire l’argomento.
Scrivi un commento