list
En esta página
list
Asigna variables como si fueran un array
Descripción#
list(mixed $var, [mixed ...$vars]): array
```php
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](#class.arrayaccess). Las expresiones `list` no pueden estar completamente vacías.
> [!NOTE]
> 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](#language.types.array.syntax.destructuring).
> [!NOTE]
> 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.
## Parámetros
`var`
Una variable.
<!-- -->
`vars`
Variables adicionales.
## Valores devueltos
Devuelve el array asignado.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 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. |
## Ejemplos
Ejemplos de `list`
Un ejemplo de uso de `list`
Uso de `list` anidado
El ejemplo anterior mostrará:
int(1)
int(2)
int(3)
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
Produce la siguiente salida (note el orden de los elementos comparado con el orden en que fueron escritos en la sintaxis `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"
`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.