Прокомментируйте программу по последовательности Фибоначчи

kenkyusha

Новичок
1)$a = 0;
2) $b = 1;
3) echo $a. "<br>" .$b. "<br>";
4) for ($i = 0; $i<=30; $i++) {
5) $c = $a+$b;
6) echo $c. "<br>";
7) $a = $b;
8) $b = $c;
}

Итак, со строками 1,2,3 ясно - переменные объявляются и выводятся посредством echo.
Затем идет цикл for. В нем мне непонятна связь переменной $i с переменными $a и $b. То есть переменная $i представлена только в цикле, и соответственно ДО цикла и После цикла нигде ее нет.
Тогда как она передает переменным a, b, c и оператору echo указание на сложение и вывод?
Буду признателен, если прокомментируете всю логику этой программы.
 

whirlwind

TDD infected, paranoid
В нем мне непонятна связь переменной $i с переменными $a и $b.
Какая связь?

Тогда как она передает переменным a, b, c и оператору echo указание на сложение и вывод?
А она и не передает никаких указаний.

У каждой команды есть синтаксис. Почитай документацию по оператору for и областям видимости. Все что находится в фигурных скобках следует рассматривать как отдельный императив. То есть там может быть все что угодно. Для for не имеет значения что там конкретно написано. Обратной связи нет.
 
Последнее редактирование:

whirlwind

TDD infected, paranoid
Указание = императив. см. выше. Связи во внешнюю область действия нет.
 

kenkyusha

Новичок
Указание = императив. см. выше. Связи во внешнюю область действия нет.
Но вывод значений до 30 тем не менее происходит. Но не могу понять как?
Как догадка - все находящееся внутри фигурных скобок, ниже цикла, получает указание от него.
 

whirlwind

TDD infected, paranoid
В данном случае оператор for выполняет императив 30 раз. Оператор это императив. Блок {} - императив более высокого порядка. Функция - способ получения императива высшего порядка. и т. д. PHP - императивный язык программирования. Это парадигма и ее надо понять.
 

kenkyusha

Новичок
В данном случае оператор for выполняет императив 30 раз. Оператор это императив. Блок {} - императив более высокого порядка. Функция - способ получения императива высшего порядка. и т. д. PHP - императивный язык программирования. Это парадигма и ее надо понять.
Тоже самое, но более простым языком. Плиииз.
Как говаривал один философ, новое знание - это нечто неизвестное, сведенное к известному.
 

whirlwind

TDD infected, paranoid
На пальцах

(повторять 30 раз) {
1. Засунуть руку в карман
2. Вынуть из кармана коробок спичек
3. Достать спичку
4. Чиркнуть спичкой о коробок
5. Засунуть коробок в карман
}

В результате имеем 30 сгоревших спичек
 

whirlwind

TDD infected, paranoid
Весь текст это приказы - императивы. Последовательность 1-5 мы называем императивом - Зажечь спичку. Что бы объединить их в императив мы используем фигурные скобки. Это команда, приказ или императив. Мы не можем сказать что это оператор, так как оператор это то, что нельзя разбить на более мелкие команды языка.
 
Сверху