list

(PHP 4, PHP 5, PHP 7, PHP 8)

listCria variáveis como se fossem arrays

Descrição

list(mixed$var, mixed...$vars = ?): array

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. String não pode ser desempacotada e expressões como list() não pode ser completamente vazia.

Nota:

Antes, PHP 7.1.0, list() apenas funcionava em arrays numéricos e assume o índice numérico começando em 0.

Parâmetros

var

A variável.

vars

Outras variaveis.

Valor Retornado

Retorna o array atribuído.

Registro de Alterações

VersãoDescrição
7.3.0 Foi adicionado suporte para atribuições de referência na desestruturação de array.
7.1.0 Agora é possível especificar chaves em list(). Isso habilita desestruturar os arrays com chaves não-integer e não-sequencial.

Exemplos

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()

<?php
$resultado
= $pdo->query("SELECT id, nome FROM empregados");
while (list(
$id, $nome) = $resultado->fetch(PDO::FETCH_NUM)) {
echo
"id: $id, nome: $nome\n";
}
?>

Exemplo #3 list() e ordem das definições de índice

<?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

A ordem em que são definidos os índices do array para ser consumido pela list() é irrelevante.

<?php
$foo
= array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list(
$x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);

O retorno desse script é o seguinte (note a ordem dos elementos em comparação com a ordem que foram escritos com a sintaxe 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"

Exemplo #5 list() com chaves

A partir do PHP 7.1.0 list() também pode agora conter chaves explícitas, na qual pode ser dada expressões arbitrárias. A mistura chaves de integer e string é permitida; no entanto, elementos com e sem chaves não podem ser misturados.

<?php
$dados
= [
[
"id" => 1, "nome" => 'Mario'],
[
"id" => 2, "nome" => 'Frederico'],
];
foreach (
$dados as ["id" => $id, "nome" => $nome]) {
echo
"id: $id, nome: $nome\n";
}
echo
PHP_EOL;
list(
1 => $segundo, 3 => $quarto) = [1, 2, 3, 4];
echo
"$segundo, $quarto\n";

O exemplo acima produzirá:

id: 1, name: Mario id: 2, name: Frederico 2, 4

Veja Também

  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • array() - Cria um array
  • extract() - Importa variáveis para a tabela de símbolos a partir de um array
To Top