Forum und email

list

(PHP 4, PHP 5)

list — Cria variáveis como se fossem arrays

Descrição

void list ( mixed $varname , mixed $... )

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 um operação.

Nota: list() só funciona em arrays com índices numéricos e assume que esses índices começam de 0 (zero).

Example#1 Exemplo de list()

<?php

$info 
= array('Café''marrom''cafeína');

// Listando todas as variáveis
list($bebida$cor$substancia) = $info;
echo 
"$bebida é $cor e $substancia a faz especial.\n";

// Listando apenas alguns deles
list($bebida, , $substanciar) = $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() doesn't work with strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Example#2 Exemplo de 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>

Aviso

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.

Example#3 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é"
}

Veja também each(), array() e extract().