(PHP 4, PHP 5)
list — Assigne des variables comme si elles étaient un tableau
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.
var1
Une variable.
Retourne le tableau assigné.
Exemple #1 Exemple avec list()
<?php
$info = array('coffee', 'brown', 'caffeine');
// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
// Liste certaines variables
list($drink, , $power) = $info;
echo "$drink has $power.\n";
// Ou bien, n'utilisons que le troisième
list( , , $power) = $info;
echo "I need $power!\n";
// list() ne fonctionne pas avec les chaînes de caractères
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Exemple #2 Exemple d'utilisation de list()
<table>
<tr>
<th>Employee name</th>
<th>Salary</th>
</tr>
<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
" <td>$salary</td>\n" .
" </tr>\n";
}
?>
</table>
Exemple #3 Utilisation d'un sous-list()
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
int(1) int(2) int(3)
Exemple #4 Utilisation de list() en tenant compte de l'ordre
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
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()) :
array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }
list() assigne les valeurs en commençant par la valeur la plus à droite. Si vous utilisez ces variables, ce ne sera pas un problème. Mais si vous utilisez des tableaux, vous serez surpris de voir que list() les affecte de droite à gauche.
La modification du tableau lors de l'exécution de la fonction list() (i.e. en utilisant la syntaxe list($a, $b) = $b) conduit à un comportement non-défini.
Note:
list() fonctionne uniquement avec des tableaux à indexation numérique, et suppose que l'indexation commence à 0.