Я читаю электронную книгу на 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";
}
?>
Или есть ли некоторые другие различия, на которые он не указал? (Кроме использования цикла с условием продолжения для того, когда Вы будете не уверены в том, сколько времени условие останется верным, такие как выбор строк от базы данных),
Я имею в виду, если это - единственная разница, разве я не могу только не использовать для цикла и использовать цикл с условием продолжения вместо этого?
Сможете? Да, конечно. Но стоит ли вам это делать или нет - это совсем другой вопрос.
Цикл for
в этом сценарии более удобен для чтения, и это определенно соглашение, которое вы найдете практически во всех языках, в которых есть директивы циклов. Если вы используете цикл while
, люди будут удивляться , почему вы не использовали цикл для
.
Функционально ваши два примера идентичны. Но они выражают разные намерения.
в то время как
означает «Я не знаю, как долго продлится это состояние, но пока оно продлится, делай это». для
означает «У меня есть определенное количество повторений для вы должны выполнить ». Вы можете использовать одно, когда имеете в виду другое, но так сложнее читать код.
для
здесь предпочтительнее $ 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;
}
Быстрее печатать, легче читать.
Это вопрос вкус, личные предпочтения и удобочитаемость. Иногда с логической точки зрения лучше работает цикл while
. Иногда для
.
По моему личному правилу, если мне не нужен инициализатор переменной, я использую , а
.
Но цикл foreach
полезен по-своему.
Кроме того, в случае области видимости PHP, когда все переменные, не входящие в функции, являются глобальными, эта переменная будет продолжать существовать после цикла независимо от того, какой элемент управления циклом вы используете.
Функционально цикл for
эквивалентен циклу while
; то есть каждый может быть переписан как другой без изменения результата или побочных эффектов. Однако у каждого из них разные коннотации. Цикл while
выполняется, пока выполняется условие; состояние статично, хотя обстоятельства меняются. Цикл for
выполняется по последовательности. Разница важна для программистов, но не для программ, точно так же, как выбор имен переменных важен для программистов, даже если они могут быть изменены для создания функционально эквивалентного кода. Одна конструкция цикла будет иметь больше смысла, чем другая, в зависимости от ситуации.
Цикл for
for (INIT; CONDITIONS; UPDATE) {
BODY
}
в основном такой же, как цикл while, структурированный следующим образом:
INIT
while (CONDITIONS) {
BODY
UPDATE
}
Хотя технически вы можете использовать один или другой, бывают ситуации, когда , а
работает лучше, чем для
, и наоборот.