(PHP 4, PHP 5)
list — Transforme une liste de variables en 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.
Note: list() fonctionne uniquement avec des tableaux à indexation numérique, et suppose que l'indexation commence à 0.
Exemple 455. Exemple avec list()
<?php
$info
= array(
'café'
,
'noir'
,
'cafeine'
);
// Liste de toutes les variables
list(
$drink
,
$color
,
$power
) =
$info
;
echo
"$drink est $color et la $power le rend particulier.\n"
;
// Liste de certaines variables
list(
$drink
, ,
$power
) =
$info
;
echo
"$drink contient de la $power.\n"
;
// Ou bien, n'utilisons que le troisième
list( , ,
$power
) =
$info
;
echo
"J'ai besoin de $power!\n"
;
// list() ne fonctionne pas avec les chaînes de caractères
list(
$bar
) =
"abcde"
;
var_dump
(
$bar
);
// NULL
?>
Exemple 456. Exemple avec list() et MySQL
<table>
<tr>
<th>Nom de l'employé</th>
<th>Salaire</th>
</tr>
<?php
$resultat
=
mysql_query
(
"SELECT id, nom, salaire FROM employes"
,
$conn
);
while (list (
$id
,
$nom
,
$salaire
) =
mysql_fetch_row
(
$resultat
)) {
echo
" <tr>\n"
.
" <td><a href=\"info.php?id=$id\">$nom</a></td>\n"
.
" <td>$salaire</td>\n"
.
" </tr>\n"
;
}
?>
</table>
list() assigne les valeurs en commençant par la valeur la plus à droite. Si vous utiliser 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.
Exemple 457. Exemple avec list() en tenant compte de l'ordre
<?php
$info
= array(
'café'
,
'noir'
,
'cafeine'
);
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) "cafeine" [1]=> string(5) "noir" [0]=> string(6) "café" }