list
Присваивает переменным значения похожим на массивы синтаксисом
&reftitle.description;
arraylist
mixedvar
mixedvars
Как и конструкция array, это не функция,
а языковая конструкция. Конструкцией list пользуются,
чтобы присваивать списку переменных значения за одну операцию.
Строки нельзя распаковать, а выражения list
нельзя вызывать без аргументов.
До PHP 7.1.0 конструкция list работала только
с индексированными массивами и принимала числовые индексы начиная с 0.
&reftitle.parameters;
var
Переменная.
vars
Дополнительные переменные.
&reftitle.returnvalues;
Возвращает присвоенный массив.
&reftitle.changelog;
&Version;
&Description;
7.3.0
Добавлена поддержка присвоения по ссылкам при деструктурировании массива.
7.1.0
Теперь в конструкции list разрешено задавать ключи. Это разрешает
разыменовывать ассоциативные массивы и массивы с индексами не по порядку.
&reftitle.examples;
Примеры использования конструкции list
]]>
Пример использования конструкции list
query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>
]]>
Использование list с индексами массивов
]]>
Конструкция list и порядок указания индексов
Порядок определения индексов в массиве,
с которым будет работать конструкция list,
неважен.
'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
]]>
Даёт такой вывод (обратите внимание на порядок, в котором элементы
сравнивались, и в каком порядке элементы записаны в синтаксисе list):
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 с ключами
Начиная с PHP 7.1.0 конструкции list разрешено
содержать явные ключи, которые указывают как произвольные выражения. Допустимо
смешивать строковые и целочисленные ключи; однако элементы с ключами и без
ключей смешивать нельзя.
1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";
]]>
&example.outputs;
&reftitle.seealso;
each
array
extract