Самообучаясь, нашёл на одном известном ресурсе следующий пример:
<?php
for($i=0,$j=0,$k="Точки"; $i<10; $j++,$i+=$j) {
$k=$k.".";
echo $k;
}
// Выводит Точки.Точки..Точки...Точки....
?>
Каким образом связана $k с остальными? Почему всё оканчивается прибавлением трёх точек?
Если ставить $i < 100, то точек оказывается 13. Откуда берутся эти числа? Всю голову сломал.
В остальных случаях работа этого и других циклов понятна. Спасибо.
забавно))
просто представьте, что будет происходить с каждой итерацией ))
1 итерация - $k = Точки.
2 итерация $k = $k + '.' так как $k = "Точки." + "." дает нам уже "Точки.."
3 итерация $k = "Точки.." + "." = "Точки..."
4 итерация "Точки..." + "." = "Точки...."
5 итерация ....упс! ее не будет почему? Вот из-за этого $i<10;
Спасибо, так понятнее, но остаются но:
Наверное, правильнее значения $i по итерациям будут
1) i=0 j=0 == 0 (исходное значение)
2) i=0 j=1 == 1 (j увеличилось на 1, сумма вышла 1)
3) i=1 j=2 == 3 (i теперь=1, j увеличилась на 1, и стала 2, сумма=3)
4) i=3 j=3 == 6 (i после предыдущего пункта=3, j больше на 1 и =3, сумма=6)
5) i=6 j=4 == 10 (по тому же принципу).
Или неправильно?
Принцип итерации в этом примере понял, но не понимаю до сих пор, как, не соотносясь с другими переменными, к $k прибавляются точки? В каком именно месте кода, железка понимает, что нужно добавлять именно точки, а не выводить "Точки." исходя из $k=$k."."?
смотрите - итерация это повторение.
у вас $k = Точки + "." и это действие повторяется несколько раз.
отсюда и при первой итерации получаете
Точки + '.' = Точки. (тепер $k это Точки. )
далее
Точки. + '.' = Точки..
Точки... + '.' = Точки....
насчет значений по итерациям , в 4 и 5 . да, я ошибся ))) но, сути это не меняет
Вывел. Для $j минимальное вывелось (естественно) 0, максимальное - 3. Это я и не могу понять, и каким образом это отражается на точках, т.е. где связь между строчной и цифровой переменными.