list
(PHP 4, PHP 5)
list — Assigne des variables comme si elles étaient un tableau
Description
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.
Liste de paramètres
-
varname
-
Une variable.
Valeurs de retour
Retourne le tableau assigné.
Exemples
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="/manuel-php/info.php?id=$id\" data-lbox="1" title="Manuel PHP - $name">$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" }
Notes
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.