(PHP 4, PHP 5, PHP 7)
list — Cria variáveis como se fossem arrays
Assim como array(), não é exatamente uma função, e sim uma construção da própria linguagem. list() é usada para criar uma lista de variáveis em apenas uma operação.
varname
A variável.
Não há valor retornado.
Exemplo #1 Exemplo da list()
<?php
$info = array('Café', 'marrom', 'cafeína');
// Listando todas as variáveis
list($bebida, $cor, $substancia) = $info;
echo "$bebida é $cor e $substancia o faz especial.\n";
// Listando apenas alguns deles
list($bebida, , $substancia) = $info;
echo "$bebida tem $substancia.\n";
// Ou ignoramos os primeiros valores para conseguir apenas o último
list( , , $substancia) = $info;
echo "I need $substancia!\n";
// list() não funciona com strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Exemplo #2 Exemplo da list()
<table>
<tr>
<th>Lista de empregados</th>
<th>Salário</th>
</tr>
<?php
$result = mysql_query ("SELECT id, nome, salario FROM empregados", $conn);
while (list ($id, $nome, $salario) = mysql_fetch_row ($result)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$nome</a></td>\n" .
" <td>$salario</td>\n" .
" </tr>\n";
}
?>
</table>
Exemplo #3 Usando list() de forma aninhada
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
int(1) int(2) int(3)
Exemplo #4 Usando list() com índices de array
<?php
$info = array('café', 'marrom', 'cafeína');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
O retorno desse script é o seguinte (note a ordem dos elementos em comparação com o array original):
array(3) { [2]=> string(8) "cafeína" [1]=> string(5) "marrom" [0]=> string(6) "café" }
A função list() assinala os valores começando pelos parâmetros da direita. Se você está usando variáveis normais, então não precisa se preocupar com esse detalhe. Mas se você está usando arrays com índices você normalmente iria esperar que a ordem dos índices no array fosse da esquerda para a direita, mas não é isso que acontece. O índice é criado na ordem reversa.
Nota:
list() funciona somente com arrays numéricos e espera que esses índices comecem de 0 (zero).