Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (11 ноя 2012, 18:42) [0/0] [0] [отв] [спам] [под] +1 | -1

Может быть вы встречались когда нибудь с таким понятием как циклы.

Цикл - конструкция выполняющяя повторное действие.Циклы присутствуют почти в каждом языке программирования.
В 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 тогда пропускаем текущую итерацию.


На этом всё*

2. [автор] (11 ноя 2012, 18:43) [0/0] [0] [отв] [спам] [под] +1 | -1

Документация:
http://www.php.su/learnphp/cs/?cycles

3. [автор] (6 дек 2012, 22:29) [0/0] [0] [отв] [спам] [под] +1 | -1

UP Может комуто будет полезно.

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений