<?php
$options = array();
$currentYear = 2012;
while($currentYear < (2012 + 3) ) {
$options[$currentYear++] = $currentYear;
}
var_dump($options);
?>
期待される出力:
array(3) { [2012]=> int(2012) [2013]=> int(2013) [2014]=> int(2014) }
一般的な理論:最初に割り当ての RHS を実行し、RHS 値を LHS に割り当てます。RHS を実行した後、LHS で事後インクリメントを実行します。このシナリオによると、反復は次のように説明できます。
最初の繰り返しでは、RHS の $currentYear 値は 2012 で、その値をキー 2012 の配列オプションに割り当てます。変数 $currentYear を 1 増やし、繰り返しを続行します。2 回目の反復では、RHS の $currentYear 値は 2013 であり、その値をキー 2013 の配列オプションに割り当てます。変数 $currentYear を 1 増やし、反復を続行します。以下の一般的なプログラミングの概念はどうなったのでしょうか?
実際の出力:
array(3) { [2012]=> int(2013) [2013]=> int(2014) [2014]=> int(2015) }
誰かがより良い説明を思い付くことができれば、それは素晴らしいことです。