list

(PHP 4, PHP 5, PHP 7, PHP 8)

listAssigne des variables comme si elles étaient un tableau

Description

list(mixed $var, mixed ...$vars = ?): array

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. Les chaînes de caractères ne peuvent pas être déstructurées et les expressions list() ne peuvent pas être entièrement vide.

Note:

Antérieur à PHP 7.1.0, list() fonctionne uniquement sur un tableau d'indice numérique et suppose que l'indice numérique commence à 0.

Liste de paramètres

var

Une variable.

vars

Variables supplémentaires.

Valeurs de retour

Retourne le tableau assigné.

Historique

Version Description
7.3.0 Le support pour l'assignement par référence dans la déstructuration de tableau a été ajouté.
7.1.0 Il est maintenant possible de spécifier les clés dans la list(). Cela permet de déstructurer des tableaux avec des clés non-entières ou non séquentielles.

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()

<?php
$result 
$pdo->query("SELECT id, name FROM employees");
while (list(
$id$name) = $result->fetch(PDO::FETCH_NUM)) {
    echo 
"id: $id, name: $name\n";
}
?>

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 list() et l'ordre de définition des index

L'ordre dans lequel les indices d'un tableau à traiter par list() sont définis est non pertinent.

<?php
$foo 
= array(=> 'a''foo' => 'b'=> 'c');
$foo[1] = 'd';
list(
$x$y$z) = $foo;
var_dump($foo$x$y$z);

Étant donné la sortie suivante (notez l'ordre des éléments comparés et dans quel ordre ils ont été écrits dans la syntaxe de la list()) :

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"

Exemple #5 list() avec des clés

À partir de PHP 7.1.0 list() peut maintenant contenir également des clés explicites, qui peuvent être donnés comme des expressions arbitraires. Le mixage des clés entier et chaîne de caractères est autorisé; Toutefois, les éléments avec et sans clés ne peuvent pas être mélangés.

<?php
$data 
= [
    [
"id" => 1"name" => 'Tom'],
    [
"id" => 2"name" => 'Fred'],
];
foreach (
$data as ["id" => $id"name" => $name]) {
    echo 
"id: $id, name: $name\n";
}
echo 
PHP_EOL;
list(
=> $second=> $fourth) = [1234];
echo 
"$second$fourth\n";

L'exemple ci-dessus va afficher :

id: 1, name: Tom
id: 2, name: Fred

2, 4

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