Циклы в PHP

Эту статью я пишу для новичков, которые только начинают изучать PHP. Расскажу я в этой статье о всевозможных циклах в PHP, так как данной статьи у меня на сайте не было. Были только циклы в JavaScript, но, несмотря на общую схожесть, это всё-таки не то. В PHP есть 4 вида циклов.
Вот они:
- FOR
- WHILE
- DO-WHILE
- 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 для перебора массивов:
<?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 "<br />";
$i = 0;
while ($i < count($list)) {
echo $list[$i]."; ";
$i++;
}
echo "<br />";
$i = 0;
do {
echo $list[$i]."; ";
$i++;
}while($i < count($list));
echo "<br />";
foreach ($array as $key => $value) {
echo "$key = $value; ";
}
?>
Все эти циклы обязан знать наизусть любой программист, поэтому если вдруг что-то непонятно, перечитайте ещё раз, либо задайте вопрос в комментариях, и я постараюсь ответить.
-
-
Михаил Русаков
Комментарии (16):
Михаил помоги мне пожалуйста... Я всё таки пытаюсь сделать комментарии и я запутался в самом начале... Как занести всё в массив а потом вывести? Пробую так но не получается while ($row = $result_set->fetch_array()) { echo $row['name']; //Вывод комментариев echo "<br />"; echo $row['text_comment']; //Вывод комментариев } Помоги пожалуйста
Ответить
Записывайте всё содержимое сразу в массив в цикле $res[] = $row А потом вывести foreach($res as $value) { print $value; }
Ответить
Всмысле так? while ($row = $result_set->fetch_array()) { $res[] = $row; foreach($res as $value) { print_r $value } }
Ответить
Нет, foreach вообще отдельно, это отдельный цикл для вывода релультата. while ($row = $result_set->fetch_assoc()) { $res[] = $row; } foreach($res as $value) { print_r($value); }
Ответить
никак не получается....всё равно выводит Array ( [id] => 1 [page_id] => 1 [name] => ggggg [text_comment] => ggggggg [email] => [sait] => [date] => 0000-00-00 )
Ответить
Значит и был этот массив в row. Можно отдельно вторым циклом выводить и его содержимое.
Ответить
Я напряг голову и решил сделать так,и мне так более удобно,но так не действуют стили : $page_id = 1;// Уникальный идентификатор страницы (статьи или поста) $mysqli = new mysqli("localhost", "Admin", "udiram04", "test");// Подключается к базе данных $result_set = mysql_query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); //Вытаскиваем все комментарии для данной страницы if (mysql_num_rows($result_set) > 0) { $myrow = mysql_fetch_array($result_set); do { printf ("<p><p><b>Комментарий добавил(а):</b> %s <br /> Дата: %s</p> <p>%s</p></p><hr />",$myrow[`name`],$myrow[`date`], $myrow[`text_comment`]); } while ($myrow = mysql_fetch_array($result_set)); } Помогите со стилями и скажите так нормально выводить или нужно по другому...Да и скажите о безопасности этого метода
Ответить
А вы не подскажите как проверить мыло и добавить в таблицу?
Ответить
Не пойму как связаны стили с выводом текста комментариев, стили должны стоять отдельно. Как именно проверить? Что это действительно email можно убедиться проверив по регулярному выражению, а реальный или нет - заставить пользователя перейти по ссылке с кодом.
Ответить
Спасибо что напомнили про отправку на мыло... После просмотра вашей рассылки про подиверждение по мылу регистрации - у меня возникла про блема(Не хочет совершенно обновлятся поле с хешем активации)
Ответить
А можно как-нибудь повторить определенные блоки в странице используя цикл? Нужно к примеру повторить div блок ровно столько раз, сколько записей выводится в цикле while. Я сколько не пытался - не выходит...
Ответить
<?php for ($i = 0; $i < 10; $i++) { ?> <div></div> <?php } ?>
Ответить
Ээ... вы неправильно меня поняли... Нужно повторить содержимое блока... Я тему на форуме создал по этому вопросу: http://myrusakov.ru/forum.html?act=thread&id=1266
Ответить
Михаил,а как сделать, чтобы на странице выводилось 10 статей, а если их больше 10, то остальные выводить на следуйщей странице, которая создавалась бы автоматически?
Ответить
http://myrusakov.ru/php-page-navigation.html
Ответить
спасибо
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.