變量$ i由0(零)初始化。
條件之前如果($我< $總)是$測試i由1.因此,即使在第一次等於1
在第三通$ i等於3遞增,並且在第四通過它等於4這是不是 < $ total。
因此,只有$號的4種元素的3相加:1 + 2 + 3,其等於6.
參見下面的代碼中的註釋:
<?php
$numbers = array(1,2,3,4);
$total = count($numbers); // Gives 4
$sum = 0;
$output = "";
$i = 0; // $i = 0
foreach($numbers as $number) {
$i = $i + 1; // $i = 1, even at the first time
// after 3 passes $i is equal to $total (=4)
if ($i < $total) { // So, only 3 of the 4 elements of $number are honored
$sum = $sum + $number;
}
}
echo $sum; // Thus $sum = 1 + 2 + 3 = 6
// The last element (=4) is never summed up
?>
這將總結所有4個元素,給出10個結果:
foreach($numbers as $number) {
if ($i < $total) {
$sum = $sum + $number;
}
$i = $i + 1;
}
在紙張上手動寫入每一次迭代循環以瞭解變量發生了什麼。這是學習的最佳方式;) – walther
因爲您在if語句之前增加了'$ i' – Rizier123
如果將$ i遞增,則$ i變爲1.在if語句中,1仍然小於$ total。 –