list
Assegna valori a delle variabili come se fossero un array
Come array, questa non è in realtà una funzione, bensì un costrutto del linguaggio. list è usata per assegnare valori ad una lista di variabili in una sola operazione.
list($a, $b) = $b ha un comportamento indefinito.
var1 Una variabile.
Restituisce l'array assegnato.
Version Description 7.0.0 L'ordine di esecuzione delle operazioni di assegnazione è cambiato. 7.0.0 Le espressioni list non possono più essere completamente vuote. 7.0.0 Le stringhe non possono più essere spacchettate.
esempio di list <?php $info = array('caffè', 'scuro', 'caffeina'); // assegna a tutte le variabili list($bevanda, $colore, $componente) = $info; echo "Il $bevanda è $colore e la $componente lo rende speciale.\n"; // assegna solo in parte list($bevanda, , $componente) = $info; echo "Il $bevanda ha la $componente.\n"; // oppure assegnamo solo l'ultima variabile list( , , $componente) = $info; echo"Ho voglia di $componente!\n"; // list() non funziona con le stringhe list($bar) = "abcde"; var_dump($bar); // NULL ?>
Esempio di uso di list <table> <tr> <th>Nome dell'impiegato</th> <th>Stipendio</th> </tr> <?php $risultato = $pdo_query("SELECT id, nome, stipendio FROM impiegati"); while (list($id, $nome, $stipendio) = $result->fetch(PDO::FETCH_NUM)) { echo (" <tr>\n". " <td><a href=\"info.php?id=$id\">$nome</a></td>\n". " <td>$stipendio</td>\n". " </tr>\n"); } ?> </table>
Utilizzare list annidate <?php list($a, list($b, $c)) = array(1, array(2, 3)); var_dump($a, $b, $c); ?> int(1) int(2) int(3)
Utilizzo di list con gli indici <?php $info = array('caffè', 'nero', 'caffeina'); list($a[0], $a[1], $a[2]) = $info; var_dump($a); ?> Restituisce il seguente risultato (si noti l'ordine degli elementi rispetto all'ordine con cui sono stati scritti nella sintassi di list). Example outputs 7 array(3) { [2]=> string(8) "caffeina" [1]=> string(4) "nero" [0]=> string(5) "caffè" } Example outputs 5 array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }
list e ordine delle definizioni dell'indice L'ordine con il quale sono definiti gli indici dell'array da consumare da parte di list è irrilevante. <?php $foo = array(2 => 'a', 'foo' => 'b', 0 => 'c'); $foo[1] = 'd'; list($x, $y, $z) = $foo; var_dump($foo, $x, $y, $z); Restituisce il seguente risultato (si noti l'ordine degli elementi in rapporto a quello con cui sono scritti nella sintassi di list): array(4) { [2]=> string(1) "a" ["foo"]=> string(1) "b" [0]=> string(1) "c" [1]=> string(1) "d" } string(1) "c" string(1) "d" string(1) "a"
each array extract