Синтаксис цикла:
for (часть А; часть B; часть C){ инструкция 1; инструкция 2; }
В фигурных скобках указываются операторы, выражения, инструкции, то, что должно выполняться определенное количество раз. Внутри круглых скобок — три части. Они разделены знаком точка с запятой ; — но это не та точка с запятой, которая говорит о конце инструкции в php. Это разделитель частей, это не конец выражения.
Часть А — php выполняет выражение внутри. Как правило, здесь инициализируется счетчик (назначаем переменную в роли счетчика и на нее ориентируемся, крутить — не крутить цикл), но не обязательно, здесь еще можно дописать какое-либо выражение.
Часть B -‘встроенный if’, т.е. проверяется истинность того, что здесь есть. В случае true php заходит внутрь цикла и выполняет все инструкции.
Часть C — php выполняет выражение, т.е. как в части А. Как правило (но не обязательно и не всегда) здесь меняем счетчик — увеличиваем (уменьшаем).
Работа кода глазами php. Он идет по коду видит for. Заходит в часть А и делает все, что там написано; сюда он попадает только один раз. Потом заходит в часть B, проверяет истинность выражения. Если здесь true, то дальше php заходит в тело цикла, делает все инструкции внутри. Потом идет в часть C и выполняет все, что там написано. Возвращается в часть B, проверяет истинность выражения. Если true, то php идет в тело цикла, потом опять в часть C. И так по кругу, пока в части B не станет false. После этого вылетаем из цикла.

Пример цикла простого:
for($i=1; $i echo "привет"; // инструкции }
Пример посложнее:
$str = 'Hello'; // есть строка for(i=0, $cnt=strlen($str); i echo $str{$i}.""; // вывод строки по буквам }
В этом пример в части А нашего цикла записано два выражения: i=0, $cnt=strlen ($str), которые разделены между собой запятой. Таких выражений можно писать сколько угодно в части А, но не забывайте разделять их запятыми (точка с запятой не подходит, т.к. она разделяет часть A-B-C).