название может быть довольно запутанным. Вот скрипт, который требует начального и конечного значений для добавления чисел к начальному значению:
function addieren($start, $ende, $schritt = 1) {
if ($start < $ende) {
$erg = 0;
for ($i = $start; $i <= $ende; $i += $schritt) {
$erg += $i;
yield $erg;
}
}
}
foreach (addieren(2, 10, 2) as $erg) {
echo $erg . "<br>";
}
Итак, начальное значение равно 2, конечное значение равно 10 (но оно не заканчивается на 10 как результат показывает), и он должен добавить 2 к $ i за каждый шаг.
Вот вывод:
2
6
12
20
30
Первый вывод мне понятен, поскольку $erg
было 0 и он добавил 2 из-за 2 шагов.
Но следующий вывод - 6, и я не понимаю, почему. Во втором l oop, $i
равно 2, и скрипт говорит: $i += $schritt
, поэтому, когда $i
равно 2 и значение $schritt
также равно 2, почему этот вывод 4 не выводится как второй вывод ? Надеюсь, вы понимаете, о чем я. Я думаю, это просто логическая ошибка c в моей голове.