(PHP) Почему этот генератор-скрипт добавляет начальное значение + значение шага к начальному значению? - PullRequest
0 голосов
/ 19 апреля 2020

название может быть довольно запутанным. Вот скрипт, который требует начального и конечного значений для добавления чисел к начальному значению:

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 в моей голове.

...