Изучаем PHP - Циклы

 

Добрый день дорогой читатель Блога RS! Сегодня мы продолжим говорить о php, а если быть точнее, мы поговорим о циклах do while и for. Для чего они нужны? Совершенно на любом интернет проекте Вы можете встретить список новостей, или список каких-нить фотографий, ссылок, анонсов. Как делаются такие списки? Есть два варианта. Первый - если мы делаем статичный сайт, то бишь на языке разметки html, то мы берем кусочек кода, отвечающий за один анонс на нашем сайте, и копируем его, копируем и еще раз копируем! Что согласитесь со мной, не особо то и удобно. Второй вариант - создавать динамичный сайт на php с использованием цикла, который за Вас будет копировать нужный Вам код столько раз, сколько потребуется. При этом получится так: Вы написали этот код, и забыли про него. Циклы использует не только для реализации всяческих списков на сайте. Циклы можно использовать для наполнения переменных данными, для изменения данных в переменных. Проще говоря, если Вам необходимо проделывать одну и тужу операцию помногу раз, то циклы незаменимы!

 

 

Ну теоретически я думаю убедил Вас, что циклы штука удобная, давайте теперь покажу их на практике!

 

Как цикл узнает, сколько раз ему циклиться?

 

Забавный получился заголовок Ну все довольно просто! Программист, то есть Вы, составляет условие, и пока оно выполняется цикл будет циклиться Например, Вам необходимо выполнять какой то кусок кода лишь 10 раз. Не проблема! Создадим переменную которая будет считать сколько циклов пройдено, и как только эта переменная станет равна 10, прекратим цикл, вот и все Давайте рассмотрим сначала цикл do while после цикл for, а в конце сравним их

 

Цикл do while

 

Синтаксис цикла такой:

<?php
do
{
Выполняемая операция
}
while(Условие);
?>

Теперь для укрепления, поставим для себя задачу. Предположим, нам просто жизненно необходимо, вывести 3 числа по порядку. Мы могли бы сделать вот так:

<?php
$a = 1;
$b = 2;
$c = 3;
echo $a." ".$b." ".$c;
?>

Получили бы нужный нам результат:

А теперь у нас появилась надобность вывести 100 чисел. Согласитесь что создавать 100 переменных как то чересчур, поэтому используем цикл:

<?php
$a = 0;
do
{
$a = $a + 1;
echo $a." ";
}
while($a<100);
?>

Смотрим, что я сделал:

  • Объявил переменную "a" и присвоил ей значение равное нулю
  • Далее объявил цикл do while
  • Условием служит сравнение переменной $a и числа 100. Если переменная $a меньше 100 то повторяю операцию.
  • В самом теле, я каждый раз прибавляю к переменной $a единицу, тем самым увеличиваю значение в переменной
  • Далее транслирую значение переменной посредством оператора echo

Вот что получилось:

 

Цикл for

 

Этот тоже имеет особую популярность в обществе веб программистов. Смысл тот же самый, но для начала я приведу синтаксис:

for(Объявляем переменную которая будет следить за количеством пройденных циклов;Условие выполнения цикла;Увеличение переменной которая отслеживает количество пройденных циклов)
{
Выполняемая операция
}

Описание конечно немного длинноватое, но сама запись довольно короткая Для закрепления и пояснения выполним туже задачу что и с предыдущим циклом, выведем 100 чисел:

<?php
for($i=1;$i<=100;$i++)
{
echo $i." ";
}
?>
  • Переменная $i служит нам аналогом переменной $a в предыдущем примере. Ей мы присвоили значение - 1.
  • Далее идет условие при котором цикл будет выполняться, то есть код будет повторяться пока переменная $i меньше или равна 100
  • Запись $i++; означает, что после каждого пройденного шага переменная $i увеличится на единицу, то есть запись $i++; аналогична записи $i = $i + 1;.

Вот результат:

 

В чем разница?

 

Разница между этими двумя циклами не большая. Пожалуй лишь одна разница Условие у цикла do while стоит в конце записи, а у цикла for в начале. Трудно объяснить, я продемонстрирую, давайте у цикла do while цифру 100 заменим на цифру 0, тем самым сделаем условие не выполнимым, ведь переменная $a которая с самого начала содержит число ноль не может быть меньше нуля:

 

<?php
$a = 0;
do
{
$a = $a + 1;
echo $a." ";
}
while($a<0);
?>

Мы увидим следующее:

Почему так получилось? Почему мы видим на экране "1"? Ведь условие то не выполнимо! Ответ прост - в цикле do while первый шаг будет произведен в независимости от условия. А вот последующие шаги буду выполняться лишь в том случае, если условие правдиво.

Теперь заменим цифру 100 на 0 у цикла for для той же цели, сделать условие не выполнимым:

<?php
for($i=1;$i<=0;$i++)
{
echo $i." ";
}
?>

Вот что мы увидим:

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

Вот пожалуй и все отличия

 

Заключение

 

Сегодня мы разобрали самые популярные циклы в php программирование. Для первого времени мне было достаточно знать, что такое переменные, один цикл - do while, и вывод записей из базы данных, для того, что бы написать свой первый простейший динамический сайтик! Так что совсем скоро и Вы уже сможете самостоятельно написать свой простенький проект. Но прежде чем мы приступим к изучению запросов к базе данных, мы поговорим о массивах, функциях и многих других довольно важных вещах, так что не "переключайтесь" и подпишитесь на ленту новостей, что бы быть в курсе новых постов Если есть какие то вопросы, или мысли - пишите! Удачи Вам, у меня все!

 

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

Ваше имя *
Сайт
Ваш E-mail *
Ваше сообщение *
 
Вы не подтвердили условия политики конфиденциальности.
Даниил, 28 Ноября 2011 г. 19:22 пишет:
Гость
Отлично вы всё описываете, только вот диз блога так себе, сделайте его пошире будет симпотичнее!;-)
Rio-Shaman, 28 Ноября 2011 г. 20:29 пишет:
Автор
Спасибо за мнение =) Что касается дизайна, то ширина области текста рассчитана на самое маленькое разрешение экрана. По анализу посещаемости видно, что самый маленький экран это 1024х768. Если сделать экран шире то у пользователей с таким разрешением появится горизонтальный скролл, что не приемлемо с точки зрения веб разработки...
ZedRott, 09 Июня 2012 г. 21:31 пишет:
Гость
А как сделать так,чтобы из базы выводилось только определённое кол-во строк?
Например последние 10 новостей
Rio-Shaman, 09 Июня 2012 г. 22:23 пишет:
Автор
Пример реализации есть в статье:
http://rio-shaman.ru/index.php?blog=38
При написание модуля мини новостей, из базы данных выводится именно 10 последних заметок.
Ответ для пользователя: ZedRott