(PHP 4, PHP 5)
list — Asigna variables como si fuera un array
Al igual que array(), no es realmente una función, es un constructor del lenguaje. list() se utiliza para asignar una lista de variables en una sola operación.
varname
La variable.
Devuelve el array asignado.
Ejemplo #1 Ejemplos de list()
<?php
$info = array('café', 'marrón', 'cafeína');
// Listando todas las variables
list($drink, $color, $power) = $info;
echo "El $drink es $color y la $power lo hace especial.\n";
// Listando algunas variables
list($drink, , $power) = $info;
echo "El $drink tiene $power.\n";
// O vamos a omitir solo la tercera
list( , , $power) = $info;
echo "Necesito $power!\n";
// list() no funciona con cadenas
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Ejemplo #2 Ejemplo del uso de list()
<table>
<tr>
<th>Nombre del empleado</th>
<th>Salario</th>
</tr>
<?php
$result = mysql_query("SELECT id, name, salary FROM employees", $conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
" <td>$salary</td>\n" .
" </tr>\n";
}
?>
</table>
Ejemplo #3 Uso de list() dentro de list
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
int(1) int(2) int(3)
Ejemplo #4 Uso de list() con índices array
<?php
$info = array('café', 'marrón', 'cafeína');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
Muestra la siguiente salida (nótese el orden de los elementos comparado con el orden escrito en la sintaxis de list()):
array(3) { [2]=> string(8) "café" [1]=> string(5) "marrón" [0]=> string(6) "cafeína" }
list() asigna los valores empezando por el parámetro más a la derecha. Si se utilizan variables simples, no hay que preocuparse. Pero si se usan array con índices normalmente se espera que el orden de los ínices en el array sea el mismo que se escribió en list() de izquierda a derecha, el cual no es. Es asignado en el orden contrario.
La modificación del array durante la ejecución de list() (p.ej. usando list($a, $b) = $b) resultará en un comportamiento indefinido.
Nota:
list() solo funciona con arrays numéricos y se asume que el índice numérico empieza por 0.