list
Assigne des variables comme si elles étaient un tableau
&reftitle.description;
arraylist
mixedvar
mixedvars
Tout comme array, list n'est pas une
véritable fonction, mais un élément de langage, qui permet de rassembler
les variables varname, ...
sous forme de tableau, pour les assigner en une seule ligne.
Avant PHP 7.1.0, list fonctionne uniquement sur un tableau
d'indice numérique et suppose que l'indice numérique commence à 0.
Avec PHP 5, list assigne les valeurs commençant avec le paramètre le plus à droite. Avec PHP 7, list commence avec le paramètre le plus à gauche.
Si vous utilisez des variables simples, vous n'avez pas à vous en préoccuper.
Mais, si vous utilisez des tableaux avec des indices, vous vous attendrez
généralement à ce que l'ordre des indices du tableau soit les mêmes que
ceux écrit dans list, de la gauche,
vers la droite, ce qui n'est pas le cas dans PHP 5, qui
faisait l'assignation dans l'ordre inverse.
D'une manière générale, il est conseillé de ne pas se fier
à un ordre spécifique d'exécution, car cela pourrait changer à
l'avenir.
&reftitle.parameters;
var
Une variable.
vars
Variables supplémentaires.
&reftitle.returnvalues;
Retourne le tableau assigné.
&reftitle.changelog;
&Version;
&Description;
7.3.0
Le support pour l'assignement par référence dans la déstructuration
de tableau a été ajouté.
7.1.0
Il est maintenant possible de spécifier les clés dans la
list. Cela permet de déstructurer des tableaux
avec des clés non-entières ou non séquentielles.
7.0.0
L'ordre dans lequel l'opération d'assignation est exécutée a changé.
7.0.0
Les expressions de list ne peuvent plus être
complètement vide.
7.0.0
Les chaînes de caractères ne peuvent plus être défaites.
&reftitle.examples;
Exemple avec list
]]>
Exemple d'utilisation de list
| Employee name |
Salary |
query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
echo " \n" .
" | $name | \n" .
" $salary | \n" .
"
\n";
}
?>
]]>
Utilisation d'un sous-list
]]>
Utilisation de list en tenant compte de l'ordre
]]>
Cet exemple donne le résultat suivant (notez l'ordre d'affichage des
éléments, en comparaison avec l'ordre dans lequel ils ont été écrits dans
la syntaxe de list) :
&example.outputs.7;
string(6) "coffee"
[1]=>
string(5) "brown"
[2]=>
string(8) "caffeine"
}
]]>
&example.outputs.5;
string(8) "caffeine"
[1]=>
string(5) "brown"
[0]=>
string(6) "coffee"
}
]]>
list et l'ordre de définition des index
L'ordre dans lequel les indices d'un tableau sont traités par
list sont définis est non pertinent.
'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
]]>
Etant donné la sortie suivante (notez l'ordre des éléments comparés
et dans quel ordre ils ont été écrits dans la syntaxe
de la list) :
string(1) "a"
["foo"]=>
string(1) "b"
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"
]]>
list avec des clés
Depuis PHP 7.1.0 list peut maintenant contenir également
des clés explicites, qui peuvent être donnés comme des expressions arbitraires.
Le mixage des clés &integer; et &string; est autorisé; Toutefois, les éléments
avec et sans clés ne peuvent pas être mélangés.
1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";
]]>
&example.outputs;
&reftitle.seealso;
each
array
extract