(PHP 4, PHP 5)
list — Присваивает переменным из списка значения подобно массиву
Подобно array(), это не функция, а языковая конструкция. list() используется для того, чтобы присвоить списку переменных значения за одну операцию.
varname
Переменная.
Возвращает присвоенный массив.
Пример #1 Примеры использования list()
<?php
$info = array('кофе', 'коричневый', 'кофеин');
// Составить список всех переменных
list($drink, $color, $power) = $info;
echo "$drink - $color, а $power делает его особенным.\n";
// Составить список только некоторых из них
list($drink, , $power) = $info;
echo "В $drink есть $power.\n";
// Или только третья
list( , , $power) = $info;
echo "Мне нужен $power!\n";
// list() не работает со строками
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Пример #2 Пример использования list()
<table>
<tr>
<th>Имя работника</th>
<th>Зарплата</th>
</tr>
<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
" <td>$salary</td>\n" .
" </tr>\n";
}
?>
</table>
Пример #3 Использование list() с индексами массивов
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
int(1) int(2) int(3)
Пример #4 Использование list() с индексами массива
<?php
$info = array('кофе', 'коричневый', 'кофеин');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
Выведет (сравните порядок исходных элементов с порядком, в в котором они были перезаписаны list()):
array(3) { [2]=> string(12) "кофеин" [1]=> string(20) "коричневый" [0]=> string(8) "кофе" }
list() присваивает значения начиная с крайнего правого параметра. Если вы используете простые переменные, можете не беспокоиться об этом. Но если вы используете индексные массивы, вы можете ожидать, что в результате выполнения функции list() вы получите тот же порядок элементов, что и в исходном массиве: слева направо; однако это не так. Они будут присвоены в обратном порядке.
Изменение массива во время выполнения функции list() (например, использование list($a, $b) = $b) приводит к непредсказуемому поведению.
Замечание:
list() работает только с массивами, индексами которых являются числа и нумерация которых начинается с 0.