2

これは、each()でlist()を使用するためのphpdocの実用的なサンプルコードです。

<?php

$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

出力は

a => apple
b => banana
c => cranberry

なぜそれが機能し、そのように出力されるのかわかりません。なぜなら、

each()のAPIから、 each()は4つのキー/値ペアを持つ配列を返すと言います。したがってeach($fruit)、次のようになります。

Array
(
    [1] => yy
    [value] => yy
    [0] => xx
    [key] => xx
)

コードの場合:

while (list($key, $val) = each($fruit)) {
        echo "$key => $val\n";
    }

$keyと等しくてはいけませんeach($fruit)[1]、そして?$valeach($fruit)[value]

4

2 に答える 2

3

ノート:

list()数値配列でのみ機能し、数値インデックスは0から始まると想定しています。

http://php.net/list

つまり、list数字キーを順番に積極的に探します。list($foo, $bar)割り当てられた配列にキー0とが必要であり、それぞれにキー1を割り当てます。これらのキーが配列自体のどの順序にある​​かは関係ありません。$foo$bar

于 2012-06-07T14:36:34.550 に答える
1

PHP7.1で更新されました

新着情報?

  • list()に新しい省略形があります
  • list()は名前付きキーをサポートします

list()の省略形

$array = [3,5,1];
[$a, $b, $c] = $array;

名前付きキーに使用

$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
['a' => $a, 'b' => $b, 'c' => $c] = $fruit;

// $a = 'apple'
// $b = 'banana';
// $c = 'cranberry';

ソース:PHP list()

于 2019-05-04T05:44:02.597 に答える