|
|
 |
list (PHP 3, PHP 4, PHP 5 ) list --
把数组中的值赋给一些变量
说明void list ( mixed ...)
像 array() 一样,这不是真正的函数,而是语言结构。list()
用一步操作给一组变量进行赋值。
注:
list() 仅能用于数字索引的数组并假定数字索引从 0 开始。
例子 1. list() 例子 |
<?php
$info = array('coffee', 'brown', 'caffeine');
// Listing all the variables
list($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";
// Listing some of them
list($drink, , $power) = $info;
print "$drink has $power.\n";
// Or let's skip to only the third one
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()。
rubein at earthlink dot net
29-Dec-2000 09:15
Note: If you have an array full of arrays, you can't use list() in
conjunction to foreach() when traversing said array,
e.g.
$someArray = array(
array(1, "one"),
array(2, "two"),
array(3,
"three")
);
foreach($somearray as list($num, $text))
{ ... }
This, however will work
foreach($somearray
as $subarray) {
list($num, $text) = $subarray;
...
}
| |