Вряд ли вы сможете написать серьезный сценарий на PHP , не используя циклы. Что такое цикл? Это особый вид управляющей конструкции, позволяющие многократно (и даже бесконечно) выполнять один и тот же код. В PHP поддерживаются следующие циклы:

Первые три цикла вы, скорее всего, сможете встретить в большинстве языков программирования. Циклы, в зависимости от условий, можно прерывать или продолжать (переходить к следующей итерации, не выполняя тело цикла). Давайте рассмотрим подробнее каждый из циклов.

Цикл for

Синтаксис цикла for следующий.

For(инициализация; условие; команды_после_итерации) { тело_цикла; }

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

// Массив значений $array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); // Условие цикла звучит так: пока счетчик не достигнет значения, равного количеству // элементов массива, тело цикла выполняется for($i = 0; $i < count($array); $i++) { print "
".($i + 1).". ".$array[$i]."."; } /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Так как счетчик $i начинался с нуля, при каждой итерации мы к его значению прибавляли единицу, чтобы список выглядел более привычным. После каждой итерцации значение счетчика увеличивалось на единицу, и когда оно достигло 11, цикл остановился. Теперь давайте взглянем на цикл do-while.

Цикл do-while

Цикл do-while отличается тем, что он работает по постусловию. Это означает, что код, заключенный в теле цикла, выполнится как минимум один раз. Синтаксис цикла такой:

Do { тело_цикла; } while(условие);

Этот цикл используется довольно редко при веб-программировании , но может он вам и понадобится в ваших сценариях.

// Уже знакомый нам массив $array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); // Запускаем цикл $i = 1; do { print "
".$i.". ".$array[($i - 1)]."."; } while($i++ < count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Обратите внимание на отличие того, что мы выводим на экран в этом цикле от цикла for . Так как код в теле цикла do-while исполняется как минимум один раз, начальное значение счетчика было задано нулевым. Как работает цикл… выполняется код, затем проверяется условие. При первой итерации счетчик имел значение 1. После итерации единица оказалась меньше 11 (количества элементов). При последней итерации счетчик имел значение 11, а это никак не меньше 11. Цикл остановился. На do-while очень похож цикл while.

Цикл while

Цикл while является предусловным. Он выполнится только тогда, когда его условие истинно. То есть цикл while может и не выполниться вовсе. Его ситаксис таков:

While(условие) { тело_цикла; }

Наряду с циклом for цикл while используется очень часто.

$array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); $i = 1; while($i++ <= count($array)) { print "
".$i.". ".$array[($i - 1)]."."; } /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Цикл while для начинающих разработчиков наиболее прост и понятен.

Цикл foreach

Цикл foreach не похож на все перечисленные. Он появился в PHP4, предназначен для перебора массивов. Разработчику не нужно ничего выдумывать для этого. Всё легко и просто:

/** * Цикл foreach следует понимать как «для каждого из». * Массив, обрабатываемый циклом, передается переменной, которая * доступна только внутри тела цикла. При желании можно обращаться * и к ключам массива. */ foreach(массив as элемент_массива) { тело_цикла; } foreach(массив as ключ_массива => элемент_массива) { тело_цикла; }

Принцип работы цикла foreach совсем не такой как у циклов for , while и do-while . Поэтому для неопытных разработчиков довольно непросто понять что именно с его помощью можно (и даже нужно) делать.

// Изменим уже знакомый нам массив. Сделаем его ассоциативным. $array = array("Яблоко" => "фрукт", "Картошка" => "овощь", "Арбуз" => "ягода", "Цветок" => "растение", "Вода" => "жидкость", "Ртуть" => "металл", "Кислород" => "газ", "Пшеница" => "хлеб", "Россия" => "наша Родина", "Москва" => "столица нашей Родины", "Ливень" => "попадос"); $i = 1; // Можем сделать так foreach($array as $v) { print "
".$i.". ".$v."."; $i++; } /* Получим такой вот неожиданный результат 1. фрукт. 2. овощь. 3. ягода. 4. растение. 5. жидкость. 6. металл. 7. газ. 8. хлеб. 9. наша Родина. 10. столица нашей Родины. 11. попадос. */ // А теперь сделаем иначе foreach($array as $k => $v) { print "
".$i.". ".$k." — это ".$v."."; $i++; } /* Теперь результат будет таким 1. Яблоко — это фрукт. 2. Картошка — это овощь. 3. Арбуз — это ягода. 4. Цветок — это растение. 5. Вода — это жидкость. 6. Ртуть — это металл. 7. Кислород — это газ. 8. Пшеница — это хлеб. 9. Россия — это наша Родина. 10. Москва — это столица нашей Родины. 11. Ливень — это попадос. */

Понимаете как работает этот цикл? Если нет, можете задать вопрос в комментариях к материалу.

В любом цикле можно использовать конструкции break или continue . Иногда не имеет смысл продолжать работу цикла или нужно перейти к следующей итерации.

$array = array("Яблоко" => "фрукт", "Картошка" => "овощь", "Арбуз" => "ягода", "Цветок" => "растение", "Вода" => "жидкость", "Ртуть" => "металл", "Кислород" => "газ", "Пшеница" => "хлеб", "Россия" => "наша Родина", "Москва" => "столица нашей Родины", "Ливень" => "попадос"); $i = 1; // Пример работы цикла с конструкцией continue foreach($array as $k => $v) { if($k != "Кислород") continue; print "
".$i.". ".$k." — это ".$v."."; $i++; } /* Результат будет таким 1. Кислород — это газ. */ $i = 1; // Пример работы цикла с конструкцией break foreach($array as $k => $v) { if($k == "Кислород") break; print "
".$i.". ".$k." — это ".$v."."; $i++; } /* Результат будет таким 1. Яблоко — это фрукт. 2. Картошка — это овощь. 3. Арбуз — это ягода. 4. Цветок — это растение. 5. Вода — это жидкость. 6. Ртуть — это металл. */

Эту статью я пишу для новичков, которые только начинают изучать PHP . Расскажу я в этой статье о всевозможных циклах в PHP , так как данной статьи у меня на сайте не было. Были только , но, несмотря на общую схожесть, это всё-таки не то. В PHP есть 4 вида циклов .

  1. WHILE
  2. DO-WHILE
  3. FOREACH

Разберём их по порядку и начнём с самого популярного цикла в PHP (да и не только в PHP ) - это цикл FOR . Синтаксис у данного цикла следующий:

For(Выражение_1; Выражение_2; Выражение_3) {
операторы
}

Выражение_1 выполняется сразу же и безоговорочно, Выражение_3 выполняется после каждой итерации цикла. Выражение_2 - это проверка того, нужно ли продолжать цикл. Если результат выражения будет true , то начинается следующая итерация цикла, а если false , то цикл прекращает свою работу.

Следующий тип цикла - это WHILE . Это более простой тип циклов, синтаксис которого следующий:

While(Выражение) {
операторы
}

Пока Выражение возвращает true , цикл будет работать, а как только появится false , он прекращает свою работу.

Цикл DO-WHILE очень похож на WHILE , но с одним отличием. Условие выхода проверяется после выполнения итерации, а не до. Таким образом, данный цикл будет выполняться всегда хотя бы 1 раз. И вот синтаксис цикла DO-WHILE :

Do{
операторы
}while(Условие);

И, наконец, последний тип циклов - это foreach , который служит только для перебора массивов и объектов . Он необходим, когда ключами у массива являются не числа (которые легко перебрать через тот же FOR ), а строки. Синтаксис цикла FOREACH следующий:

Foreach($array_or_object as $key => $value) {
операторы
}

И, наконец, давайте применим все 4 типа циклов в PHP для перебора массивов :

$list = array(5, 2, 3, 10, 12, 10);
$array = array("a" => 1, "x" => 10, "m" => -5);
for ($i = 0; $i < count($list); $i++) {
echo $list[$i]."; ";
}
echo "
";
$i = 0;
while ($i < count($list)) {
echo $list[$i]."; ";
$i++;
}
echo "
";
$i = 0;
do {
echo $list[$i]."; ";
$i++;
}while($i < count($list));
echo "
";
foreach ($array as $key => $value) {
echo "$key = $value; ";
}
?>

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

На уроке будут рассмотрены операторы цикла php: цикл while php, цикл foreach, цикл do while и цикл со счетчиком for. Будут разобраны примеры выхода из цикла (в php — break и continue)

Синтаксис:

while (условие){ оператор 1; оператор 2; ... }

Фигурные скобки обязательны в данной конструкции, если в цикле используется составной оператор: т.е. не один, а последовательность из нескольких операторов. Если оператор один, то скобки можно опустить.

Рис. 4.1. Пример использования цикла While


Результат:

1 2 3 4 5 6 7 8 9 10

Кроме того, можно использовать альтернативный синтаксис :

while (условие): оператор 1; оператор 2; ... endwhile;

Рис. 4.2. Пример альтернативного использования цикла While


Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22… Всего вывести 30 цифр. Использовать цикл While php


Решение:
1 2 3 4 5 6 $sum = 1 ; while ($i <= 30 ) { $sum += 3 ; $i ++; echo ($sum . " " ) ; }

$sum=1; while ($i<=30){ $sum+=3; $i++; echo ($sum." "); }

Результат:

4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94

Пример: Выводить степени двойки до значения 1024



Решение:

do { оператор 1; оператор 2; ... } while (условие);

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

Рис. 4.3. Пример использования цикла Do While


Результат:

1 2 3 4 5 6 7 8 9 10

Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22.. . Всего вывести 30 цифр



Решение:

for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) { оператор 1; оператор 2; ...; }

  • После служебного слова for в скобках через; обязательно указываются 3 параметра.
  • Цикл For в php может быть и без фигурных скобок, если в теле цикла присутствует только один оператор.

Рис. 4.4. Пример использования цикла For


Результат:

Привет!
Привет!
Привет!
Привет!
Привет!

  • В php для цикла for поддерживается альтернативный синтаксис:
  • for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) : оператор 1; оператор 2; ...; endfor;

Пример: Выводить в окно браузера числа от 1 до 10


Решение:
1 2 3 for ($i = 1 ; $i <= 10 ; $i ++ ) { echo $i . " " ; }

for ($i = 1; $i <= 10; $i ++) { echo $i." "; }

Результат:

Лабораторная работа:
Нарисовать таблицу умножения

Этап 1

  1. Создайте две числовые переменные cols и rows
  2. Присвойте созданным переменным произвольные значения в диапазоне от 1 до 10

Этап 2

  1. Используя циклы, отрисуйте таблицу умножения в виде HTML-таблицы на следующих условиях:
  • Число столбцов должно быть равно значению переменной cols
  • Число строк должно быть равно значению переменной rows
  • Ячейки на пересечении столбцов и строк должны содержать значения, являющиеся произведением порядковых номеров столбца и строки
  • Рекомендуется использовать циклы for
  • Этап 3

    • Значения в ячейках первой строки и первого столбца должны быть отрисованы полужирным шрифтом
    • Фоновый цвет ячеек первой строки и первого столбца должен быть отличным от фонового цвета таблицы. Сохраните файл.

    Дополните код:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 " ; for ($td = 1 ; ...; ... ) { if (... ) { echo "" ; } else { echo "" ; } } echo "" ; } ?>
    " , $tr * $td , "" , $tr * $td , "

    "; for($td=1; ...; ...){ if(...){ echo ""; }else{ echo ""; } } echo ""; } ?>
    ", $tr * $td, "", $tr * $td, "

    Количество элементов массива

    Для удобства работы с массивами часто используется функция count()

    Функция возвращает кол-во элементов массива

    count ($masiv ) ;

    Пример: Дан массив, состоящий из названий времен года. Необходимо вывести все элементы массива неизвестного размера


    Решение:
    1 2 3 4 5 6 7 8 9 $mas [$n ]" . "
    " ; } ?>

    "; } ?>

    Результат:

    Цикл Foreach в php

    Обход массива наиболее выгодным образом происходит при помощи итерационного цикла foreach , позаимствованного из синтаксиса языка Perl.


    Рис. 4.6. Пример использования цикла Foreach, полный вариант


    Результат:

    Массив с индексом 0 равен 1
    Массив с индексом 1 равен 2
    Массив с индексом 2 равен 3
    Массив с индексом 3 равен 4

    Пример: Выводить индексы и значения массива user , в котором записаны данные об Иване


    Решение:
    1 2 3 4 5 6 7 8 $user [ "name" ] = "Ivan" ; $user [ "login" ] = "root" ; $user [ "password" ] = "p@ssword" ; $user = "312-34-85" ; foreach ($user as $index => $value ) { echo "Индекс $index равен $value
    "
    ; }

    $user["name"]="Ivan"; $user["login"]="root"; $user["password"]="p@ssword"; $user="312-34-85"; foreach($user as $index =>$value){ echo "Индекс $index равен $value
    "; }

    Результат:

    Пример:

    1. Выводить приветствие для имен из списка
    2. Кроме приветствия выводить номера в списке
    1 2 3 4 5 6 7 8 9 10 $names = array ("Иван" , "Петр" , "Семен" ) ; // 1 задание foreach ($names as $val ) { echo "Привет, $val
    "
    ; } // 2 задание foreach ($names as $k => $val ) { echo "Привет, $val ! Ты в списке под номером $k
    "
    ; }

    $names = array("Иван","Петр","Семен"); // 1 задание foreach ($names as $val) { echo "Привет, $val
    "; } // 2 задание foreach ($names as $k => $val) { echo "Привет, $val ! Ты в списке под номером $k
    "; }

    Результат:

    Задание php 4_3: Дан массив, состоящий из названий дней недели. Вывести элементы, используя конструкцию foreach .

    Дополнительно: вывод должен быть в формате: понедельник – день 1 -й



    Лабораторная работа:
    Нарисовать (добавить) навигационное меню на странице, типа:

    <a href = "contact.php" > Contact</ a >

    Contact

    используя массив в качестве структуры меню.

    Алгоритм:

    1. Создайте ассоциативный массив $menu
    2. Заполните массив, соблюдая следующие условия:
    • Индексом элемента массива является пункт меню, например: Home , About , Contact
    • Значением элемента массива является имя файла, на который будет указывать ссылка, например: index.php , about.php , contact.html
  • Используя цикл foreach отрисуйте вертикальное меню, структура которого описана в массиве $menu
  • 4 years ago

    Do-while loops can also be used inside other loops, for example:

    // generating an array with random even numbers between 1 and 1000

    $numbers = array();
    $array_size = 10 ;

    // for loop runs as long as 2nd condition evaluates to true
    for ($i = 0 ; $i < $array_size ; $i ++) {

    // always executes (as long as the for-loop runs)
    do {
    $random = rand (1 , 1000 );

    // if the random number is even (condition below is false), the do-while-loop execution ends
    // if it"s uneven (condition below is true), the loop continues by generating a new random number
    } while (($random % 2 ) == 1 );

    // even random number is written to array and for-loop continues iteration until original condition is met
    $numbers = $random ;
    }

    // sorting array by alphabet

    Asort ($numbers );

    // printing array

    Echo "

    "
    ;
    print_r ($numbers );
    echo "
    " ;
    ?>

    12 years ago

    There is one major difference you should be aware of when using the do--while loop vs. using a simple while loop: And that is when the check condition is made.

    In a do--while loop, the test condition evaluation is at the end of the loop. This means that the code inside of the loop will iterate once through before the condition is ever evaluated. This is ideal for tasks that need to execute once before a test is made to continue, such as test that is dependant upon the results of the loop.

    Conversely, a plain while loop evaluates the test condition at the begining of the loop before any execution in the loop block is ever made. If for some reason your test condition evaluates to false at the very start of the loop, none of the code inside your loop will be executed.

    2 years ago

    The last example on this page is simply abuse of the `break` keyword. Also, the suggestion to use `goto` if you don"t understand the abuse of `break` is unsettling. (See the manual page for `goto` for more than enough reasons not to use it.)

    The final example is generally better expressed using a typical if-else statement.

    if ($i < 5 ) {
    echo "i is not big enough" ;
    } else {
    $i *= $factor ;

    If ($i >= $minimum_limit ) {
    echo "i is ok" ;

    /* process i */
    }
    }
    ?>

    This version is easier to read and understand. And arguments for code golf are invalid as well as this version is 3 lines shorter.

    In conclusion, although you can certainly write code that abuses the `break` keyword, you shouldn"t in practice. Keep the code easy to read and understand for whoever inherits your code. And remember, code is for humans not computers.

    10 years ago

    I"m guilty of writing constructs without curly braces sometimes... writing the do--while seemed a bit odd without the curly braces ({ and }), but just so everyone is aware of how this is written with a do--while...

    a normal while:
    while ($isValid ) $isValid = doSomething ($input );
    ?>

    a do--while:
    do $isValid = doSomething ($input );
    while ($isValid );
    ?>

    Also, a practical example of when to use a do--while when a simple while just won"t do (lol)... copying multiple 2nd level nodes from one document to another using the DOM XML extension

    # open up/create the documents and grab the root element
    $fileDoc = domxml_open_file ("example.xml" ); // existing xml we want to copy
    $fileRoot = $fileDoc -> document_element ();
    $newDoc = domxml_new_doc ("1.0" ); // new document we want to copy to
    $newRoot = $newDoc -> create_element ("rootnode" );
    $newRoot = $newDoc -> append_child ($newRoot ); // this is the node we want to copy to

    # loop through nodes and clone (using deep)
    $child = $fileRoot -> first_child (); // first_child must be called once and can only be called once
    do $newRoot -> append_child ($child -> clone_node (true )); // do first, so that the result from first_child is appended
    while ($child = $child -> next_sibling ()); // we have to use next_sibling for everything after first_child
    ?>

    Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!

    Здравствуйте дорогие читатели и постоянные подписчики! Пришло время продолжить цикл статей о PHP и сегодня мы изучим такую базовую и при этом очень важную вещь, как циклы. Что вам нужно знать о циклах в первую очередь? А то, что применяются они везде и всюду, и шаблоны Joomla, VirtueMart, Wordpress, OpenCart и любой другой CMS - не исключение.

    Что такое цикл? Цикл — это многократное повторение одного и того же участка кода. Сколько нужно сделать повторений – зависит от счётчика цикла, который мы сами создаём и можем им управлять. Это очень удобно, например, когда нам нужно отрисовать товары в категории интернет-магазина, вывести посты в блоге, вывести комментарии к статье или товару, все меню в CMS (движках сайтов) сделаны тоже с помощью циклов. В общем, циклы используются очень часто.

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

    Оператор ++ (инкремент) увеличивает значение переменной на единицу, в то время как оператор -- (декремент) уменьшает значение переменной на единицу. Их очень удобно использовать в циклах как счётчик, да и в программировании в целом. Различают также ПРЕ инкремент/декремент и ПОСТ инкремент/декремент:

    PRE инкремент/декремент ++$a Увеличивает $a на единицу и возвращает значение $a. --$a Уменьшает $a на единицу и возвращает значение $a. POST инкремент/декремент $a++ Возвращает значение $a, а затем увеличивает $a на единицу. $a-- Возвращает значение $a, а затем уменьшает $a на единицу.

    Например:

    $a = 1; echo "Вывод числа: " . $a++; // Вывод числа: 1 echo " Вывод числа: " . $a; // Вывод числа: 2 echo "Вывод числа: $a"; $a += 1; // тоже самое, что и в первой строке $a = 1; echo "Вывод числа: " . ++$a; // Вывод числа: 2 echo "Вывод числа: " . $a; // Вывод числа: 2 $a += 1; echo "Вывод числа: $a"; // тоже самое, что и в первой строке этого блока

    Цикл for

    for (часть А; часть В; часть С){ // Любой код, сколько угодно строк; }

    Цикл for состоит из 3 частей и самого тела. Часть А просто выполняет то, что в ней написано, как правило, в 90% случаев там создаётся счётчик цикла. Часть В – это, грубо говоря, уже знакомый нам if , то есть проверка на истину (true?). Если условие верно, то есть true , тогда PHP заходит внутрь цикла и продолжает его исполнять. Часть С – тоже самое что часть А, как правило в Части С мы делаем какие-то преобразования с счётчиком. Например:

    "; } echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

    Теперь об алгоритме работы цикла for. Первым делом, увидев for, PHP заходит в часть А и выполняет её один единственный раз (см. изображение ниже). Далее PHP переходит в часть В и проверяет, true там или false. Если true, то выполняет тело цикла и только после этого переходит в часть С. После этого PHP снова переходит в часть В и проверяет, там до сих пор true или уже нет. Если нет, то цикл заканчивается, если да, то продолжается до тех пор, пока в части В не будет false.

    Результат работы предыдущего примера:

    Цикл While

    while (часть В){ // Любой код, сколько угодно строк; }

    Как видите, здесь нету части А и части С, из цикла for здесь осталось только условие, то есть часть В. Если нам нужно использовать счётчик, то мы должны поместить его внутрь цикла while, среди остального кода, это будет част С. А создавать счётчик нужно до начала конструкции while:

    Часть А; while (часть В){ // Любой код, сколько угодно строк; Часть С; }

    Переделаем предыдущий цикл for в цикл while:

    "; $i++; } echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

    Результат будет точно таким же. Что использовать: цикл for или цикл while – дело вкуса, смотрите как вам удобней и логичней, разницы нет.

    Цикл do... while

    Менее распространённый из всех видов циклов. По сути это перевёрнутый while. Его фишка в том, что PHP хотя бы один раз (первый), но обязательно зайдёт в тело цикла do... while, потому что в этом цикле условие в конце:

    Часть А; do{ // Любой код, сколько угодно строк; Часть С; }while(Часть В);

    "; $i++; }while($i < 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

    Важно понимать: во всех трёх видах циклов нет обязательных частей.

    Пример цикла for без части А и части С:

    For(;$i > 8;){ // ваш код }

    Пример цикла for без всех трёх частей:

    For(;;){ // классический бесконечный цикл }

    То есть все точки с запятой всё равно остаются в цикле for, такой синтаксис!

    Бесконечные циклы

    Бесконечный цикл – это ошибка разработчика, при которой страница никогда не сможет загрузиться до конца, так как условие цикла (часть В) всегда будет true. Например:

    "; $i++; }while($i != 0); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

    Результат:

    Это я показал лишь часть, потому что в экран всё не помещается. Вот так ваш браузер и сервер вашего сайта будут мучатся бесконечно, пока браузер не откажет секунд через 30. А все потому, что в примере выше переменная $i никогда не будет равно нулю, она изначально равна 1 и постоянно возрастает.

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

    Управление циклами

    Оператор break. Бывают ситуации, когда нам не нужно, чтобы цикл отыгрывал все итерации (повторения). Например, в какой-то определённый момент мы хотим его прервать и продолжить выполнение ниже по коду:

    "; if ($i === 5) break; // выходим из цикла если $i равно 5 $i++; } echo "Я умею считать только до 5:("; ?>

    Результат:

    В примере выше как только мы дошли до пяти, PHP вышел из цикла, а так бы он досчитал до 7.

    Оператор continue тоже прерывает выполнение цикла, но в отличии от break, continue не выходит из цикла, а возвращает интерпретатор PHP назад к условию (к части В). Пример:

    "; } echo "Что-то пропустил?"; ?>

    Результат:

    Только что мы пропустили цифру 5, так как PHP не дошёл до echo.

    Цикл может быть вложен в цикл. В таком случае операторы continue и break распространяются только на один цикл, тот, в котором они находятся. То есть другими словами перебрасывают на один уровень, а не через все. Пример:

    Но мы и сами можем выбирать, через сколько уровней нужно перепрыгнуть:

    "; $i++; $i=1; $k=1; while ($k < 8) { echo "Итерация $k номер ". $k . "
    "; if ($k === 5) break 2; $k++; } } ?>

    Результат:

    Естественно при этом мы не можем ставить число больше, чем у нас вложенных циклов.

    Цикл foreach

    Самый последний по порядку, но самый важный по значению – это цикл foreach. Используется только для перебора и объектов (их учить ещё слишком рано). Пример синтаксиса:

    "; } ?>

    Результат:

    Это была коротка конструкция foreach, но она имеет и расширенную версию, которая кроме значения ячеек массива выводит ещё и названия ячеек (ключи):

    $value) { echo "В разделе " . $key . " есть статья под названием: ". $value . "
    "; } ?>

    Результат:

    Обращаю ваше внимание на то, что переменные мы можем называть как захотим, хоть $key и $value, хоть $xxx и $yyy.

    Если массив, то используем только цикл foreach и никаких других. Именно этот цикл используется повсюду в VirtueMart, да и вообще везде.