Учебник РНР
Назад Вперёд

list

(unknown)

list - присваивает значения переменным, как если бы они были массивом.

Описание

void list (mixed ...)

Как и array(), это в действительности не функция, а конструкция языка. list() используется для присвоения списку переменных за одну операцию.

Примечание: list() работает только с числовыми массивами и принимает, что числовые индексы начинаются с 0.

Пример 1. list()
<?php

$info = array('coffee', 'brown', 'caffeine');

// Листинг всех переменных
list($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";

// Листинг некоторых из них
list($drink, , $power) = $info;
print "$drink has $power.\n";

// Или пропустим все, кроме третьей
list( , , $power) = $info;
print "I need $power!\n";

?>
Пример 2. Пример использования list()
<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result = mysql_query ("SELECT id, name, salary FROM employees",$conn);
while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
    print (" <tr>\n".
           "  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
           "  <td>$salary</td>\n".
           " </tr>\n");
}

?>

</table>

Предупреждение!

list() присваивает значения переменным, начиная с самого правого параметра. Если вы используете обычные переменные, вам не нужно ни о чём беспокоиться. Но если вы используете массивы с индексами, вы обычно ожидаете, что порядок индексов в массиве будет тот же, что записан вами в list() - слева направо; что в действительности не так. Присвоение идёт в обратном порядке.

Пример 3. Использование list() с индексами массива
<?php

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

Это даёт на выводе следующее (обратите внимание на порядок элементов по сравнению с порядком, в котором они записаны в list()):

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

См. также each(), array() и extract().


Назад Оглавление Вперёд
ksort Вверхnatcasesort