listWeist Variablen zu, als wären sie ein Array
&reftitle.description;
arraylistmixedvarmixedvars
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.
Vor PHP 7.1.0 funktionierte list nur bei numerischen
Arrays und basierte auf der Annahme, dass die numerischen Indizes bei 0
beginnen.
Seit PHP 7.1.0 kann list auch explizite Schlüssel
enthalten, sodass Arrays mit nicht-ganzzahligen oder nicht-sequentiellen
Schlüsseln destrukturiert werden können. Weitere Details zur
Destrukturierung von Arrays sind im Abschnitt
Destrukturierung von Arrays zu
finden.
&reftitle.parameters;
var
Eine Variable.
vars
Weitere Variablen.
&reftitle.returnvalues;
Gibt das zugewiesene Array zurück.
&reftitle.changelog;
&Version;&Description;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.
&reftitle.examples;
list-Beispiele
]]>
Ein Beispiel für die Verwendung von list
query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>
]]>
Verschachtelte list-Ausdrücke verwenden
]]>
&example.outputs;
Die Reihenfolge, in der die Indizes des von list zu
verarbeitenden Arrays definiert werden, ist irrelevant.
list und die Reihenfolge der Index-Definitionen
'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):
string(1) "a"
["foo"]=>
string(1) "b"
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"
]]>
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.
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";
]]>
&example.outputs;
&reftitle.seealso;
eacharrayextract