Различия между некоторое время циклом и для цикла в PHP?

Я читаю электронную книгу на PHP прямо сейчас, и автор отметил, что различие между некоторое время циклом и для цикла - то, что для цикла рассчитает, сколько раз это выполняет.

Поэтому возьмите это:

<?php
    for ($i = 1; $i < 10; $i = $i + 1) {
        print "Number $i\n";
    }
?> 

Но не был бы это совпасть с

<?php
    $i = 1;
        while ($i < 10) {
            $i = $i + 1;
            print "Number $i\n";
        }
?>

Или есть ли некоторые другие различия, на которые он не указал? (Кроме использования цикла с условием продолжения для того, когда Вы будете не уверены в том, сколько времени условие останется верным, такие как выбор строк от базы данных),

Я имею в виду, если это - единственная разница, разве я не могу только не использовать для цикла и использовать цикл с условием продолжения вместо этого?

8
задан Rob 23 April 2010 в 13:34
поделиться

5 ответов

Сможете? Да, конечно. Но стоит ли вам это делать или нет - это совсем другой вопрос.

Цикл for в этом сценарии более удобен для чтения, и это определенно соглашение, которое вы найдете практически во всех языках, в которых есть директивы циклов. Если вы используете цикл while , люди будут удивляться , почему вы не использовали цикл для .

10
ответ дан 5 December 2019 в 05:55
поделиться

«Ибо» более четко выражает ваши намерения

Функционально ваши два примера идентичны. Но они выражают разные намерения.

  • в то время как означает «Я не знаю, как долго продлится это состояние, но пока оно продлится, делай это».
  • для означает «У меня есть определенное количество повторений для вы должны выполнить »

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

Некоторые другие причины, по которым для здесь предпочтительнее

  • Он более краток и помещает всю информацию о цикле в одном месте
  • Это делает $ i локальной переменной for the loop

Не забудьте foreach

Лично я чаще всего использую в PHP цикл foreach . Если вы обнаружите, что делаете что-то вроде этого:

for ($i=0; $i < count($some_array); $i++){
  echo $some_array[$i];
}

... тогда попробуйте следующее:

foreach ($some_array as $item){
   echo $item;
}

Быстрее печатать, легче читать.

11
ответ дан 5 December 2019 в 05:55
поделиться

Это вопрос вкус, личные предпочтения и удобочитаемость. Иногда с логической точки зрения лучше работает цикл while . Иногда для .

По моему личному правилу, если мне не нужен инициализатор переменной, я использую , а .

Но цикл foreach полезен по-своему.

Кроме того, в случае области видимости PHP, когда все переменные, не входящие в функции, являются глобальными, эта переменная будет продолжать существовать после цикла независимо от того, какой элемент управления циклом вы используете.

0
ответ дан 5 December 2019 в 05:55
поделиться

Функционально цикл for эквивалентен циклу while ; то есть каждый может быть переписан как другой без изменения результата или побочных эффектов. Однако у каждого из них разные коннотации. Цикл while выполняется, пока выполняется условие; состояние статично, хотя обстоятельства меняются. Цикл for выполняется по последовательности. Разница важна для программистов, но не для программ, точно так же, как выбор имен переменных важен для программистов, даже если они могут быть изменены для создания функционально эквивалентного кода. Одна конструкция цикла будет иметь больше смысла, чем другая, в зависимости от ситуации.

4
ответ дан 5 December 2019 в 05:55
поделиться

Цикл for

for (INIT; CONDITIONS; UPDATE) {
    BODY
}

в основном такой же, как цикл while, структурированный следующим образом:

INIT
while (CONDITIONS) {
    BODY
    UPDATE
}

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

3
ответ дан 5 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: