php在foreach时支持list()

PHP5.5+增添了遍历一个数组的数组的功能并且把嵌套的数组解包到循环变量中,只需将list()作为值提供。

$array = [
    [1, 2],
    [3, 4],
];
foreach ($array as list($a, $b)) {
    echo "A: $a; B: $b\n";
}

以上会输出:

A: 1; B: 2
A: 3; B: 4

实际就是把数组$value的值赋值给list()中的变量。

list() 中的单元可以少于嵌套数组的,此时多出来的数组单元将被忽略:

$array = [
    [1, 2],
    [3, 4],
];
foreach ($array as list($a)) {
    echo "$a\n";
}

以上会输出:

1
3

如果 list() 中列出的单元多于嵌套数组则会发出一条消息级别的错误信息:

$array = [
    [1, 2],
    [3, 4],
];
foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}

以上会输出:

Notice: Undefined offset: 2 in example.php on line 6
A: 1; B: 2; C: 

Notice: Undefined offset: 2 in example.php on line 6
A: 3; B: 4; C: 

转载于:https://my.oschina.net/u/1161990/blog/823329

你可能感兴趣的:(php)