list

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

listWeist Variablen zu, als wären sie ein Array

Beschreibung

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

Wie array() ist auch dies keine Funktion, sondern ein Sprachkonstrukt. list() wird verwendet, um eine Liste von Variablen in einer Operation zuzuweisen. Zeichenketten können nicht verarbeitet werden und der list()-Ausdruck darf nicht vollständig leer sein.

Hinweis:

Vor PHP 7.1.0 funktionierte list() nur bei numerischen Arrays und basierte auf der Annahme, dass die numerischen Indizes bei 0 beginnen.

Parameter-Liste

var

Eine Variable.

vars

Weitere Variablen.

Rückgabewerte

Gibt das zugewiesene Array zurück.

Changelog

VersionBeschreibung
7.3.0 Die Unterstützung von Referenzzuweisungen bei der Arraydestrukturierung wurde hinzugefügt.
7.1.0 Es ist nun möglich, Schlüssel in list() anzugeben. Dies ermöglicht die Destrukturierung von Arrays mit nicht-numerischen oder nicht-fortlaufenden Schlüsseln.

Beispiele

Beispiel #1 list()-Beispiele

<?php

$info
= array('Kaffee', 'braun', 'Koffein');

// Auflisten aller Variablen
list($drink, $color, $power) = $info;
echo
"$drink ist $color und $power macht es zu etwas Besonderem.\n";

// Ein paar davon auflisten
list($drink, , $power) = $info;
echo
"$drink hat $power.\n";

// Oder nur die dritte ausgeben
list( , , $power) = $info;
echo
"Ich brauche $power!\n";

// list() funktioniert nicht mit Zeichenketten
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Beispiel #2 Ein Beispiel für die Verwendung von 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";
}
?>

Beispiel #3 Verschachtelte list()-Ausdrücke verwenden

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1) int(2) int(3)

Beispiel #4 list() und die Reihenfolge der Index-Definitionen

Die Reihenfolge, in der die Indizes des von list() zu verarbeitenden Arrays definiert werden, ist irrelevant.

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

Erzeugt folgende Ausgabe (beachten Sie die Reihenfolge der Elemente verglichen mit der in list() eingetragenen Reihenfolge):

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"

Beispiel #5 list() mit Schlüsseln

Von PHP 7.1.0 an kann list() nun ebenfalls explizite Schlüssel enthalten, die als beliebige Ausdrücke angegeben werden können. Die Kombination von Integer- und Zeichenkettenschlüsseln ist erlaubt; allerdings dürfen Elemente mit und ohne Schlüssel nicht kombiniert werden.

<?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(
1 => $zweites, 3 => $viertes) = [1, 2, 3, 4];
echo
"$zweites, $viertes\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

  • each() - Liefert das aktuelle Schlüssel-Wert-Paar eines Arrays und rückt den Arrayzeiger vor
  • array() - Erstellt ein Array
  • extract() - Importiert Variablen eines Arrays in die aktuelle Symboltabelle
To Top