listAsigna variables como si fueran un array
&reftitle.description;
arraylistmixedvarmixedvars
Al igual que array, esto no es realmente una función,
sino una construcción del lenguaje. list se utiliza para
asignar una lista de variables en una sola operación.
Solo se pueden desempaquetar arrays y objetos que implementen ArrayAccess.
Las expresiones list no pueden estar completamente vacías.
Antes de PHP 7.1.0, list solo funcionaba con arrays numéricos y asumía
que los índices numéricos comenzaban en 0.
A partir de PHP 7.1.0, list también puede contener claves explícitas, permitiendo
la desestructuración de arrays con claves no enteras o no secuenciales. Para más detalles sobre
la desestructuración de arrays, consulte la sección de desestructuración de arrays.
Intentar acceder a una clave de array que no ha sido definida es
lo mismo que acceder a cualquier otra variable no definida:
se emitirá un mensaje de error de nivel E_WARNING
(nivel E_NOTICE antes de PHP 8.0.0) y
el resultado será &null;.
Intentar desempaquetar un escalar asigna &null; a todas las variables.
Intentar desempaquetar un objeto que no implementa ArrayAccess es un error fatal.
&reftitle.parameters;
var
Una variable.
vars
Variables adicionales.
&reftitle.returnvalues;
Devuelve el array asignado.
&reftitle.changelog;
&Version;&Description;7.3.0
Se añadió soporte para asignaciones por referencia en la desestructuración de arrays.
7.1.0
Ahora es posible especificar claves en list. Esto
permite la desestructuración de arrays con claves no enteras o no secuenciales.
&reftitle.examples;
Ejemplos de list
]]>
Un ejemplo de uso de list
query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>
]]>
Uso de list anidado
]]>
&example.outputs;
El orden en el que se definen los índices del array a ser consumido por
list es irrelevante.
list y el orden de las definiciones de índices
'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
]]>
Produce la siguiente salida (note el orden de los elementos comparado con
el orden en que fueron escritos en la sintaxis list):
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 con claves
A partir de PHP 7.1.0 list ahora también puede contener
claves explícitas, que pueden ser dadas como expresiones arbitrarias.
Se permite mezclar claves enteras y string; sin embargo, no se pueden mezclar
elementos con y sin claves.
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 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";
]]>
&example.outputs;
&reftitle.seealso;
eacharrayextract