Цикл в функции php
Урок 6. Циклы в PHP
Что такое цикл в PHP
Код PHP
Демонстрация Скачать исходники
Каждый цикл делится на две составные части: условие выполнения цикла (когда, при каких условиях, до каких пор) и действие, программный код, который каждый раз выполняется, если цикл не закончен. Действие может состоять из одной и более инструкции, все из которых должны быть заключены в фигурные скобки <>.
Цикл с предусловием while
В цикле while есть предусловие, которое при возвращении TRUE выполняет действие в теле цикла и возвращается к предусловию. Цикл работает до тех пор, пока предусловие не вернёт FALSE.
В качестве тела цикла выступает инструкция. В теле может содержатся один или несколько операторов. Перейдём к примеру.
Код PHP
Цикл с постусловием do while
Данный цикл похож в своей работе на while, но отличается только тем, что проверка условия проходит после проработки инструкции (действия). То есть как минимум цикл проработает 1 раз.
Теперь прошлый пример рассмотрим через цикл do while.
Код PHP
Цикл со счетчиком for
Цикл for также как все другие циклы выполняет действие определённое количество раз. Однако отличается сложной конструкцией, количеством аргументов и сравнительно большими возможностями.
Цикл начинает работу с того, что инициализирует команды. Эта часть происходит в самом начале и проделывается только один раз. В ней мы, например, заносим переменные и их значения (переменных может быть несколько), которые в последствии будут обрабатываться: увеличиваться значение с каждым ходом цикла, сравниваться и так далее. Потом проверяется условие. Если оно истинно (true), то прорабатывается тело цикла. После проработки тела проделываются команды после итерации (хода цикла). В конце уже идёт возвращение к условиям, если истинно, то телу цикла, командам после итерации и так далее до победного.
Код PHP (несколько примеров)
Цикл перебора массивов foreach
Данный вид цикла используется для обработки массивов. Появился с PHP 4.
Код будет выведено так:
Конструкция break
Пример конструкции break:
Конструкция continue
Конструкция continue нужна для немедленного прекращения текущей итерации цикла и переходу к следующей (если в цикле подразумевается предусловие). Как и для break, можно указать условие вложенности цикла, при котором конструкция вступит в действие.
Пример конструкции break:
Конструкция goto
Пример goto
Спасибо за внимание и удачи в изучении php!
Цикл внутри функции
Вариант №2:
$words = массив слов.
Но если поставить внутрь цикл, то никак не хочет работать, я уже все перепробовал, все что только мог придумать. но все равно никак. подскажите знатоки! В чем проблема!?
Спасибо заранее!
Помощь в написании контрольных, курсовых и дипломных работ здесь.

Привет, друзья. Никак не могу понять, что не так. подскажите, внизу скрипт. Суть его в чем. Я в.
Цикл внутри цикла
Здравствуйте, делаю скрипт для массового добавления урлов и кеев в базу тдс. Нужно чтобы переменная.
Возврат в бесконечный цикл после fatal error внутри него
Дано: бесконечный цикл (демон на php), который запускается банальным переходом по ссылке вида.
sasha0012! да. точно!
Notice: Undefined variable: words
Добавлено через 10 минут
Вроде нашел. использовал массив внутри функции из двух слов. сработало.
Щас попробую, чтобы с большим наружним массивом сработало.
Добавлено через 34 секунды
что-то с массивом не так.
А вот когда заменил на strpos. так сработало.
О великий PHP! (Тут вы должны представить меня стоящего перед монитором на коленях. (
Ты так велик, что мы только пыль у твоих ног!
Цикл в функции php
PHP поддерживает три вида циклов:
Рассмотрим циклы PHP:
Цикл с предусловием while
Цикл с предусловием while работает по следующим принципам:
Синтаксис цикла с предусловием:
while (логическое_выражение)
инструкция;
Подобно конструкции условного оператора if, можно группировать операторы внутри тела цикла while, используя следующий альтернативный синтаксис:
while ( логическое_выражение ):
инструкция;
.
endwhile;
Цикл с постусловием do while
do
<
тело_цикла;
>
while (логическое_выражение);
После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.
Альтернативного синтаксиса для do-while разработчики PHP не предусмотрели (видимо, из-за того, что, в отличие от прикладного программирования, этот цикл довольно редко используется при программировании web-приложений).
Пример скрипта, показывающего работу цикла с постусловием do-while:
Рассмотренный сценарий выводит: 12345678910
Цикл со счетчиком for
Цикл со счетчиком используется для выполнения тела цикла определенное число раз. С помощью цикла for можно (и нужно) создавать конструкции, которые будут выполнять действия совсем не такие тривиальные, как простая переборка значения счетчика.
Синтаксис цикла for такой:
for (инициализирующие_команды; условие_цикла; команды_после_итерации)
Цикл for начинает свою работу с выполнения инициализирующих_команд. Данные команды выполняются только один раз. После этого проверяется условие_цикла, если оно истинно (true), то выполняется тело_цикла. После того, как будет выполнен последний оператор тела, выполняются команды_после_итерации. Затем снова проверяется условие_цикла. Если оно истинно (true), выполняется тело_цикла и команды_после_итерации, и.т.д.
Данный сценарий выводит: 0123456789
Есть вариант вывода строки 12345678910 :
В данном примере мы обеспечили увеличение счетчика при проверке логического выражения. В таком случае нам не нужны были команды, выполняющиеся после итерации.
Если необходимо указать несколько команд, их можно разделить запятыми, пример:
Приведем еще один, более практичный пример использования нескольких команд в цикле for:
Рассмотренный пример (да и вообще любой цикл for) можно реализовать и через while, только это будет выглядеть не так изящно и лаконично.
Для цикла for имеется и альтернативный синтаксис:
for(инициализирующие_команды; условие_цикла; команды_после_итерации):
операторы;
endfor;
Цикл перебора массивов foreach
Синтаксис цикла foreach выглядит следующим образом:
Здесь команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Приведем пример работы цикла foreach:
Рассмотренный сценарий выводит:
Андрей Иванов
Борис Петров
Сергей Волков
Федор Макаров
У цикла foreach имеется и другая форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента. Выглядит она так:
В этом случае доступно лишь очередного элемента массива, но не его ключ. Это может быть полезно, например, для работы с массивами-списками:
Конструкция break
break; // По умолчанию
break(номер_цикла); // Для вложенных циклов (указывается номер прерываемого цикла)
Рассмотренный сценарий выводит:
for (. ) // Третий цикл
<
for (. ) // Второй цикл
<
for (. ) // Первый цикл
<
>
>
>
Конструкция continue
Конструкция continue так же, как и break, работает только «в паре» с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break, для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления.
В основном continue позволяет вам сэкономить количество фигурных скобок в коде и увеличить его удобочитаемость. Это чаще всего бывает нужно в циклах-фильтрах, когда требуется перебрать некоторое количество объектов и выбрать из них только те, которые удовлетворяют определенным условиям. Приведем пример использования конструкции continue:
Рассмотренный скрипт выводит:
Итерация 1
Итерация 2
Итерация 4
Итерация 5
Грамотное использование break и continue позволяет заметно улучшить «читабельность» кода и количество блоков else.
Задачи на отработку циклов и функций PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Перед решением задач изучите теорию к данному уроку.
Задачи для решения
Отработка циклов
В следующих задачах вы должны вспомнить работу с циклами PHP.
Выведите с помощью цикла столбец чисел от 1 до 100.
Выведите с помощью цикла столбец четных чисел от 1 до 100.
Найдите с помощью цикла сумму чисел от 1 до 100.
Найдите с помощью цикла сумму квадратов чисел от 1 до 15.
Найдите с помощью цикла сумму корней чисел от 1 до 15. Результат округлите до двух знаков после дробной части.
Найдите с помощью цикла сумму тех чисел от 1 до 100, которые делятся на 7.
Заполните массив 10-ю иксами с помощью цикла.
Заполните массив числами от 1 до 10 с помощью цикла.
Заполните массив числами от 10 до 1 с помощью цикла.
Заполните массив 10-ю случайными числами от 1 до 10 с помощью цикла.
С помощью цикла создайте строку из 6-ти символов, состоящую из случайных чисел от 1 до 9.
Дан массив с числами. С помощью цикла найдите сумму элементов этого массива.
Дан массив с числами. С помощью цикла найдите сумму квадратов элементов этого массива.
Дан массив с числами. С помощью цикла найдите корень из суммы квадратов элементов этого массива. Результат округлите в меньшую сторону до целых.
Дан массив с числами. Найдите сумму тех элементов массива, которые больше 0 и меньше 10.
Дан массив с числами. Проверьте, что в нем есть 3 одинаковых числа подряд.
С помощью цикла сформируйте строку ‘1223334444. ‘ и так далее до заданного числа.
Дан многомерный массив (см. его под задачей). С помощью цикла выведите строки в формате ‘имя-зарплата’.
Заполните двумерный массив случайными числами от 1 до 10. В каждом подмассиве должно быть по 10 элементов. Должно быть 10 подмассивов.
Практика
Напишите свой аналог функции strrev. Решите задачу двумя способами.
Подсказка:
первый вариант решения: используйте функции split и array_reverse,
второй вариант решения: сделайте цикл, который будет брать символы с конца строки и формировать новую строку.
Работа с циклами foreach, for, while в PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Циклы используются для того, чтобы некоторый участок кода выполнился несколько раз подряд.
Делается это с помощью циклов.
Есть три вида циклов: foreach, while и for. Давайте разберемся, как с ними работать и чем они отличаются друг от друга.
Цикл foreach
Цикл foreach используется для прохождения по всем элементам массива.
После команды foreach() должны идти фигурные скобки <>. Код, который лежит в этих скобках, называется телом цикла.
Этот код будет выполняться столько раз, сколько проходов сделает цикл. А он сделает столько проходов, сколько элементов у нашего массива.
Итак, синтаксис цикла foreach выглядит так:
Давайте решим следующую задачу: пусть дан массив $arr с пятью элементами, выведем столбец этих элементов с помощью цикла foreach.
Будем при каждом проходе цикла выводить на экран (с помощью echo) текущий элемент массива (тот, что лежит в переменной $elem), и ставить после него тег br, чтобы получался столбец элементов, а не строка:
Если вам нужны только значения ассоциативного массива и не нужны ключи, то $ключ=> можно не писать:
Цикл foreach имеет альтернативный синтаксис:
Как и в случае с конструкцией if-else, мы можем разорвать скобки PHP внутри цикла, далее написать что-то на HTML и опять открыть скобки PHP – в этом случае HTML код внутри цикла повторится столько раз, сколько проходов сделает цикл (в случае foreach – это количество элементов массива):
Цикл while
Цикл while будет выполняться до тех пор, пока верно (истинно) выражение, переданное ему параметром. Смотрите синтаксис:
Давайте выведем с помощью цикла while столбец цифр от одного до пяти.
Для этого введем переменную $i, которую будем использовать для того, чтобы остановить наш цикл.
Как мы это сделаем: перед циклом поставим ей значение 1, а внутри цикла будем при каждом проходе цикла увеличивать ее на единицу. Сначала она будет 1, потом 2, потом 3 и так далее.
Цикл for
Цикл for является альтернативой while. Он более сложен для понимания, но чаще всего его любят больше, чем while, за то, что он занимает меньше строчек.
Его синтаксис выглядит так:
