• WEB DESIGN AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Seguici sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB

Home / News / PHP 7.1: destrutturazione degli array

PHP 7.1: destrutturazione degli array


list($x, $y, $z) = [4, 8, 16];
var_dump($x, $y, $z);

L’avviamento dell’espressione mostrata in modello porta alla generazione del seguente output indipendentemente dalla release di PHP utilizzata:

int(4) 
int(8) 
int(16)

Il bug si presentava però nel momento in cui lo sviluppatore tentava di specificare delle chiavi per l’estrazione introducendo degli indici:

list($x, $y, $z) = ["x" => 4, "y" => 8, "z" => 16];
var_dump($x, $y, $z);

In questo caso infatti abbiamo un output come il seguente, sempre indipendentemente dalla modello di PHP utilizzata nel proprio ambiente di sviluppo:

NULL 
NULL 
NULL

PHP 7.1 risolve questa problematica tramite l’introduzione di una nuova modalità di destrutturazione basata su una doppia associazione delle chiavi, sia a carico delle variabili passate come parametri a list() che ai obbligazioni della variabile:

list("x" => $x, "y" => $y, "z" => $z) = ["x" => 4, "y" => 8, "z" => 16];
var_dump($x, $y, $z);
/*
int(4) 
int(8) 
int(16)
*/

Considerando che una soluzione del genere potrebbe essere utilizzata frequentemente, si è quindi sicuro di introdurre una sintassi più breve che consente di omettere il passaggio delle coppie chiave/variabile alla funzione list():

["x" => $x, "y" => $y, "z" => $z] = ["x" => 4, "y" => 8, "z" => 16];
var_dump($x, $y, $z);
/*
int(4) 
int(8) 
int(16)
*/

Stesso orazione per quanto riguarda gli array multidimensionali:

[[$w, $x], [$y, $z]] = [[4, 8], [16, 32]];
var_dump($w, $x, $y, $z);
/*
int(4) 
int(8) 
int(16)
int(32)
*/

Anche in questo caso infatti non sarà necessario ricorrere esplicitamente alla funzione list() per la destrutturazione dell’array multidimensionale e di quelli che lo compongono.





Source link

Send this to a friend