php
array_fillと負のインデックスを使用する場合、なぜphp
最初の負のインデックスのみを埋めてから0にジャンプするのですか。
例えば:
array_fill(-4,4,10)
満たす必要が-4, -3, -2, -1
あり0
ますが、-4, 0, 1, 2, 3
マニュアルにはこの動作が記載されていますが、理由は記載されていません。
なぜこれなのか誰かが言うことができますか?
php
array_fillと負のインデックスを使用する場合、なぜphp
最初の負のインデックスのみを埋めてから0にジャンプするのですか。
例えば:
array_fill(-4,4,10)
満たす必要が-4, -3, -2, -1
あり0
ますが、-4, 0, 1, 2, 3
マニュアルにはこの動作が記載されていますが、理由は記載されていません。
なぜこれなのか誰かが言うことができますか?
PHPのソースを見ると、なぜ彼らがこれを行ったのかが正確にわかります。
彼らが行うことは、配列の最初のエントリを作成することです。PHPでは、次のようになります。
$a = array(-4 => 10);
次に、次のように新しいエントリを追加します。
$count--;
while ($count--) {
$a[] = 10;
}
これとまったく同じことを自分で行うと、まったく同じ動作が見られます。非常に短いPHPスクリプトは、これを示しています。
<?php
$a = array(-4 => "Apple");
$a[] = "Banana";
print_r($a);
?>
結果:Array ( [-4] => Apple [0] => Banana )
注 はい、PHPプログラマーは生のソースよりもはるかによく理解できるため、使用したCソースの代わりにPHPを使用しました。ただし、結果を生成するためにPHP関数を使用しているため、ほぼ同じ効果です...
おそらくそれはドキュメントに記載されているためです:http ://www.php.net/manual/en/function.array-fill.php
start_indexが負の場合、返される配列の最初のインデックスはstart_indexになり、次のインデックスはゼロから始まります(例を参照)。