list

(PHP 4, PHP 5)

list — Transforme une liste de variables en tableau

Description

void list ( mixed $varname, mixed $... )

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>

AVERTISSEMENT

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é"
}

    

Voir aussi each() , array() et extract() .