Если писать так:
for($i = 0; $i<=0; $i++){
echo $i."<br>";
break;
}
echo $i;
то ответ:
0
0
А если так:
for($i = 0; $i<=0; $i++){
echo $i."<br>";
}
echo $i;
то ответ:
0
1
Почему так происходит, разве после прерывании с помощью break
не должен выполняться дальше $i++
?
Обратите внимание: http://php.net/manual/ru/control-structures.break.php break прерывает выполнение - читай выходит из конструкции цикла в тот момент, когда на него натыкается. При этом цикл for выполняет приращение, только перед вторым проходом цикла. Соответственно он не срабатывает после оператора break.
Само значение английского слова break
- прервать, то есть выйти из цикла немедленно.
Противоположное значение имеет ключевое слово continue
которое также прерывает выполнение текущей итерации цикла, но возвращает управление управляющему предложению цикла в ту его часть, где выполняется выражение $i++
, и цикл продолжится, если условие цикла по-прежнему будет истинно.
Обратите внимание на структуру оператора for:
for (initializer; condition; iterator)
{
body
}
Оператор break сразу завершает ближайший внешний цикл или оператор switch, в котором он появляется. Управление передается оператору, следующему за завершенным оператором (если таковой имеется). В данном примере выходит за пределы цикла, т.е. инкремент переменной не происходит.
Во втором случае нету оператора break, т.е. тело цикла выполняется пока верно выражение condition.
Для того чтобы чтобы прервать выполнение текущей итерации цикла и перейти к следующей используется оператор continue
Важно! Сначала выполняется iterator, а уже после него вычисляется condition. Iterator выполняется только один раз - в самом начале работы цикла, перед всеми частями цикла. В этом случае iterator пропускается и выполняется проверка условия condition
Доброго времени суток, друзьяЕсть необходимость вывести из БД значения из определенного столбика
К примеру хочу строку "aaa" умножить на число 3, чтобы было "aaaaaaaaa"
PHP Fatal error: Declaration of