Как понять циклы, или просто о сложном. Цикл FOR.

28.03.2008 Юрий Мисейчик

Цикл FOR

В продолжение нашего разговора о циклах, рассмотрим циклы for и его разновидность цикл foreach.

Цикл for как и все циклы выполняет функцию последовательной обработки некоторого объема сложных данных. Цикл for очень хорошо ассоциируется с словом ДЛЯ и уже сразу мы можем заговорить с PHP на человеческом языке. Т.е. рассматривая пример из прошлой статьи, мы можем написать просто (структуру этого примера вы можете увидеть на картинке выше):
< ?php for ($i = 0; $i &lt; 10; $i++) { echo $i . " "; // выведет 0 1 2 3 4 5 6 7 8 9 } ?>
Что в переводе на человеческий язык обозначает ДЛЯ переменной $i равной 0, если $i меньше 10, выполняем выражение в фигурных скобках и увеличиваем $i на 1.

Вижу, что получилось объяснить немного непонятно, поэтому рассмотрим еще раз приведенный код построчно, первая строчка в коде: for ($i = 0; $i < 10; $i++), в ней:

  • Первое выражение $i = 0 выполняется в начале цикла один раз.
  • Второе значение $i < 10 проверяется перед каждым повтором цикла. Если оно соответствует действительности, то цикл продолжает выполняться и выполняет выражение в фигурных скобках. Если оно не соответствует истине, то цикл перестает выполняться.
  • В конце выполнения цикла выполняется третье значение $i++.

Вторая строчка в коде echo $i . " ";. Тут всё очень просто echo – функция которая выводит нашу переменную $i на экран по мере выполнения цикла. Так же обратите внимание на конструкцию ." " после $i эта конструкция является разделителем между каждым выводимым значением $i, в нашем случае это пробел.

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

  1. < ?php $arr = array (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); foreach ($arr as $value) { echo $value . " "; } ?>
    В данном примере создается массив $arr с значениями от 1 до 10. Цикл берет первое значение из массива $arr и приписывает это значение переменной $value, затем выводит переменную $value функцией echo. Потом цикл присваивает второе значение из массива $arr переменной $value и так далее, цикл работает до тех пор, пока в массиве $arr еще остаются необработанные элементы. Результат работы этого цикла будет следующим: 1 2 3 4 5 6 7 8 9 10.
  2. Второй вариант цикла foreach позволяет извлекать из массива не только значения, но и сами ключи, имеет следующий вид:
    < ?php $arr = array ("a"=&gt;"one", "b"=&gt;"two", "c"=&gt;"three"); foreach ($arr as<strong> $key</strong>=>$value) { echo $key. "=".$value . " "; } ?>
    Что бы более наглядно рассмотреть этот вариант, я дополнил массив более читабельными ключами и в итоге после выполнения этого цикла мы получим строку вида: a=one b=two c=three. А выполнятся цикл будет точно так же как и в первом случае его использования.

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

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Циклы, Обучение, Новичку |

Комментарии (8)

  1. Konstantin пишет:

    Спасибо, интересная инфа :) :) ;)

  2. serg пишет:

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

  3. wowch пишет:

    Надо ли так разжевывать? По книгам вроде все усваивают этот базовый материал нормально.

  4. Nechaew пишет:

    Очень доходчиво , спасибо!

  5. камень пишет:

    Может я немного старомоден, но для меня лучше стандартного for ничего нет.

  6. Chukchov пишет:

    Супер статья! Подписался на RSS, буду следить =)

  7. тЮshka пишет:

    Зачооот))))) Классно, давно не получал такого количества положительных эмоций)

  8. Kloza пишет:

    Очень было интересно читать, спасибо!

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.