Другие языки программирования и технологии

Какой цикл может продолжаться бесконечно долго for\foreach\while ? (PHP) И почему?

for и while. foreach перебирает массивы, а бесконечных массивов в php нет. Хотя попробуй вот что:
$a=array(1);
foreach ($a as $b)
$a[]=1;

Глядишь, тоже бесконечно получится, но я не могу так вот сразу сказать, пересчитывает ли он массив на каждой итерации или берёт его в момент запуска цикла и больше не проверяет.
В общем, если мой пример проработает дольше двух секунд, то все три цикла могут работать бесконечно.

Ладно, мне интересно стало, я сам проверил, не прокатил такой вариант :)
Кто не думает, что for может выполняться долго, пусть запустит for ($i=0; $i == 0; ) и серьёзно подумает над своими познаниями в php. А я пока подумаю, нельзя ли заставил foreach работать подольше.

На счёт того как выставить бесконечное выполнение: max_execution_time = 0

А вот и пример бесконечного foreach
$a = array(1);
$c = &$a;
foreach ($c as $b)
$c[]=1;

Так что ответ такой: все три цикла могут выполняться бесконечно. Для двух я уже привёл примеры, while сам осилишь, я надеюсь.
АГ
Александр Глушко
76 737
Лучший ответ
Только while может работать по-настоящему бесконечно.
Обрыв бесконечного цикла по таймауту не делает его менее бесконечным.
Никакой. По умолчанию в настройках php таймаут исполнения скрипта 30 сек. Если вам удастся выставить бесконечное значение, то это будет прорывом в скриптовых технологиях.
Yura Ilchishin
Yura Ilchishin
131