Может быть вы встречались когда нибудь с таким понятием как циклы.
Цикл - конструкция выполняющяя повторное действие.Циклы присутствуют почти в каждом языке программирования.
В php существует следующие циклы: for,foreach,while и do while
____________
for - цикл с счётчиком,имеет следующую конструкцию:
for (команда,условие,команда после итерации){
тело цикла
}
Давайте разберём на примере:
<?
for ($i = 1; $i < 10; ++$i){
echo $i;
}
?>
Вначале мы переменной с именем \\\"i\\\" присваиваем значение 1,после ставим условие $i < 10; это значит,что переменная \\\"i\\\" будет меньше 10 и в команде после ++$i мы указали что при каждом действии цикла значение переменной \\\"i\\\" будет увеличино на \\\"1\\\".В теле цикла мы вывели с помощью оператора \\\"echo\\\" значение переменной \\\"i\\\".Про {...} я уже упоминал во втором уроке.Результат нашей работы будет следующий: \\\"123456789\\\",а почему вывело не до 10 ведь мы указали \\\"$i < 10\\\" - потому,что 10 уже равно 10,а мы указали в условии что значение переменной \\\"i\\\" должно быть меньше 10.Если вы хотите вывести до 10 тогда достаточно указать в условии цикла \\\"$i <= 10\\\" - значение меньше или равно.
____________
while - цикл с предусловием,имеет следующую конструкцию:
while (логическое выражение){
тело цикла
}
В основном применяется для вывода информации с БД,файлов и т.п.Пример:
<?
while (++$i < 10){
echo $i;
}
?>
Результат будет следующий \\\"0123456789\\\" Первая цифра будет \\\"0\\\" потому,что мы не указали переменной \\\"i\\\" начальное значение 1
<?
$i = 1;
while (++$i < 10){
echo $i;
}
?>
А вот если зделать так тогда первая цифра будет 1 и результат будет следующий \\\"123456789\\\" Но можно зделать и подругому.
<?
while ($i < 10){
echo $i;
++$i;
}
?>
Чтобы вывести все данные с определённой таблицы в БД нам нужно использовать цикл while
<?
$res = mysql_query(\\\"SELECT * FROM `table` \\\"
while ($arr = mysql_fetch_array($res)){
echo $table[\\\'id\\\'];
}
?>
____________
do while - цикл с постусловием.Имеет следующую конструкцию:
do{
тело цикла
}
while (логическое выражение);
Пример:
<?
$i = 1;
do {
echo $i;
}
while (++$i < 10);
?>
Результат будет как и в цикле с предусловием \\\"123456789\\\" но в этом случае цикл проверяет значение выражения не до,а после каждого прохода итерации.
____________
foreach - цикл предназначенный для перебора массивов.Цикл имеет следующую конструкцию:
foreach (массив as ключ => значение){
тело цикла
}
Пример:
<?
$user[\\\'leons\\\'] = \\\'leonsefan.ru\\\';
$user[\\\'admin\\\'] = \\\'anwap.org\\\';
$user[\\\'pillot\\\'] = \\\'delowap.ru\\\';
$user[\\\'gosssha\\\'] = \\\'chegos.ru\\\';
foreach ($user as $login => $sait){
echo $login . \\\' - \\\' . $sait . \\\',\\\';
}
?>
Результат будет следующий: \\\"leons - leonsefan,admin - anwap.org,pillot - delowap.ru,gosssha - chegos.ru\\\"
Но в цикле имеется и другая форма записи:
foreach (массив as значение){
тело цикла
}
Пример:
<?
$array = array(\\\'arhor\\\',\\\'bage\\\',\\\'jahak\\\',\\\'raf\\\');
foreach ($array as $name){
echo $name;
}
?>
Либо:
<?
$array[] = \\\'arhor\\\';
$array[] = \\\'bage\\\';
$array[] = \\\'jahak\\\';
$array[] = \\\'raf\\\';
foreach ($array as $name){
echo $name;
}
?>
В двух случаях результат будет следующий: \\\"\\\'arhorbagejahakraf\\\" слитно потому,что не поставил раздельных знаков
Существуют ещё две конструкции в циклах:
____________
break - завершает цикл.Пример взаимодействия с циклом for
<?
for ($i = 1; $i < 10; ++$i){
if ($i == 5)
break;
echo $i;
}
?>
Результат будет следующий: \\\"1234\\\" С помощью условия \\\"if\\\" мы делаем проверку,если значение переменной \\\"i\\\" равно 5 тогда останавливаем цикл.
____________
continue - конструкция которая завершает текущую итерацию и переходит к новой.Пример:
<?
for ($i = 1; $i < 10; ++$i){
if ($i == 5)
continue;
echo $i;
}
?>
Результат будет следующий: \\\"12346789\\\" С помощью условия \\\"if\\\" мы делаем проверку,если значение переменной \\\"i\\\" равно 5 тогда пропускаем текущую итерацию.
На этом всё
Документация:
http://www.php.su/learnphp/cs/?cycles