list Присваивает переменным значения как массиву &reftitle.description; arraylist mixedvar mixedvars Как и конструкция array, это не функция, а языковая конструкция. Конструкция list присваивает списку переменных значения за одну операцию. Распаковку поддерживают только массивы и объекты, классы которых реализуют интерфейс ArrayAccess. Нельзя указывать пустую конструкцию list в выражениях присваивания. До PHP 7.1.0 конструкция list работала только с индексными массивами и принимала числовые индексы начиная с 0. Начиная с PHP 7.1.0 для деструктуризации массивов с нецелочисленными или непоследовательными ключами в конструкции list разрешили указывать явные ключи. Подробнее об этом рассказывает блок «Деструктуризация массива». Попытка получить доступ к неопределённому ключу массива аналогична обращению к любой другой неопределённой переменной: выдаётся сообщение об ошибке уровня E_WARNING, или ошибки уровня E_NOTICE до PHP 8.0.0, а результатом становится значение &null;. Попытка распаковать скалярное значение присваивает значение &null; каждой переменной в левой части выражения присваивания. При попытке распаковать объект, класс которого не реализует интерфейс ArrayAccess, возникает фатальная ошибка. &reftitle.parameters; var Переменная. vars Остальные переменные. &reftitle.returnvalues; Функция возвращает массив переменных, которым присвоила значения. &reftitle.changelog; &Version; &Description; 7.3.0 Добавили поддержку присваивания по ссылкам при деструктуризации массива. 7.1.0 Конструкция list теперь поддерживает ключи. Это помогает разыменовывать ассоциативные массивы и массивы с индексами не по порядку. &reftitle.examples; Примеры присваивания переменным значений конструкцией <function>list</function> ]]> Пример присваивания значений переменным конструкцией <function>list</function> query("SELECT id, name FROM employees"); while (list ($id, $name) = $result->fetch(PDO::FETCH_NUM)) { echo "id: $id, name: $name\n"; } ?> ]]> Пример работы вложенной конструкции <function>list</function> ]]> &example.outputs; Порядок определения индексов в массиве, который обработает языковая конструкция list, неважен. Пример поведения конструкции <function>list</function> с определениями порядка индексов '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" ]]> Пример присваивания значений переменным конструкцией <function>list</function> с указанием ключей Начиная с 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