downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

natcasesort> <ksort
[edit] Last updated: Fri, 17 May 2013

view this page in

list

(PHP 4, PHP 5)

listAssigne des variables comme si elles étaient un tableau

Description

array 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.

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=\"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(23));

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

Avertissement

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.

Avertissement

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.

Voir aussi

  • each() - Retourne chaque paire clé/valeur d'un tableau
  • array() - Crée un tableau
  • extract() - Importe les variables dans la table des symboles



natcasesort> <ksort
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes list - [3 notes]
up
15
chris at chlab dot ch
6 months ago
The example states the following:
<?php
// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar);
// output: NULL
?>

If the string is in a variable however, it seems using list() will treat the string as an array:
<?php
$string
= "abcde";
list(
$foo) = $string;
var_dump($foo);
// output: string(1) "a"
?>
up
8
svennd
4 months ago
The list() definition won't throw an error if your array is longer then defined list.
<?php

list($a, $b, $c) = array("a", "b", "c", "d");

var_dump($a); // a
var_dump($b); // b
var_dump($c); // c
?>
up
0
srikanth at networthindia dot com
3 months ago
Note: list cannot assign array cast of object to variables straight away. first you need to convert the object to numeric indexed array.

ex:
list($a, $b, $d) = (array) $abc; // $abc is an object; this will not assign.
list($a, $b, $c) = array_values((array) $abc); // This will work.

 
show source | credits | sitemap | contact | advertising | mirror sites