- Php цикл на примерах
- Использование циклов в PHP
- Foreach – перебор массива
- Результат:
- Альтернативный синтаксис foreach
- For – цикл с счетчиком
- Результат:
- Альтернативный синтаксис
- Результат:
- Альтернативный синтаксис for
- While – цикл с предусловием
- Результат:
- Альтернативный синтаксис while
- Do-while – цикл с постусловием
- Результат:
- Управление циклами
- Break
- Continue
- Результат:
- Урок 6. Циклы в PHP
- Цикл с предусловием while
- Цикл с постусловием do while
- Цикл со счетчиком for
- Цикл перебора массивов foreach
- Конструкция break
- Конструкция continue
- Конструкция goto
- Структуры управления и циклы PHP: if, else, for, foreach, while и многое другое
- Что такое структура управления?
- Проходим через различные управляющие структуры
- If
Php цикл на примерах
Цикл for самый сложный цикл в PHP. Он ведёт себя так же, как и в языке C. Синтаксис цикла for следующий:
for (expr1; expr2; expr3) statement
Первое выражение ( expr1 ) всегда вычисляется (выполняется) только один раз в начале цикла.
В начале каждой итерации оценивается выражение expr2 . Если оно принимает значение true , то цикл продолжается и выполняются вложенные операторы. Если оно принимает значение false , выполнение цикла заканчивается.
В конце каждой итерации выражение expr3 вычисляется (выполняется).
Каждое из выражений может быть пустым или содержать несколько выражений, разделённых запятыми. В expr2 все выражения, разделённые запятыми, вычисляются, но результат берётся из последнего. Если выражение expr2 отсутствует, это означает, что цикл будет выполняться бесконечно. (PHP неявно воспринимает это значение как true , так же, как в языке C). Это может быть не так бесполезно, как вы могли подумать, так как часто необходимо прервать цикл, используя условный оператор break вместо использования выражения в цикле for , которое принимает истинное значение.
Рассмотрим следующие примеры. Все они отображают числа от 1 до 10:
for ( $i = 1 ; ; $i ++) if ( $i > 10 ) break;
>
echo $i ;
>
Конечно, первый пример кажется самым хорошим (или, возможно, четвёртый), но вы можете обнаружить, что возможность использовать пустые выражения в циклах for может стать удобной во многих случаях.
PHP также поддерживает альтернативный синтаксис с двоеточием для циклов for .
for (expr1; expr2; expr3): statement . endfor;
Перебор массивов как показано ниже — это обычное дело для многих пользователей.
/*
* Это массив с некоторыми данными, которые мы хотим изменить
* при работе цикла.
*/
$people = array(
array( ‘name’ => ‘Kalle’ , ‘salt’ => 856412 ),
array( ‘name’ => ‘Pierre’ , ‘salt’ => 215863 )
);
?php
for( $i = 0 ; $i < count ( $people ); ++ $i ) $people [ $i ][ 'salt' ] = mt_rand ( 000000 , 999999 );
>
?>
Вышеприведённый код может работать медленно, так как размер массива вычисляется в каждой итерации. Поскольку размер не меняется, цикл может быть легко оптимизирован с помощью промежуточной переменной, в которую будет записан размер массива, вместо повторяющихся вызовов функции count() :
$people = array(
array( ‘name’ => ‘Kalle’ , ‘salt’ => 856412 ),
array( ‘name’ => ‘Pierre’ , ‘salt’ => 215863 )
);
?php
for( $i = 0 , $size = count ( $people ); $i < $size ; ++ $i ) $people [ $i ][ 'salt' ] = mt_rand ( 000000 , 999999 );
>
?>
Использование циклов в PHP
PHP имеет четыре вида циклов и операторы управления ими, рассмотрим поподробнее.
Foreach – перебор массива
Предназначен для перебора элементов массива.
$array = array( 1 => 'Значение 1', 2 => 'Значение 2', 3 => 'Значение 3', 4 => 'Значение 4', ); // Вывод ключей foreach ($array as $key => $val) < echo $key . '
'; > // Вывод значений foreach ($array as $key => $val) < echo $val . '
'; >
Результат:
1 2 3 4 Значение 1 Значение 2 Значение 3 Значение 4
Альтернативный синтаксис foreach
For – цикл с счетчиком
Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.
// Счетчик от 0 до 5 for ($n = 0; $n // Счетчик от 5 до 0 for ($n = 5; $n >= 0; $n--)
Результат:
Альтернативный синтаксис
$array = array( 'Значение 1', 'Значение 2', 'Значение 3', 'Значение 4', ); for ($n = 0; $n < count($array); $n++) < echo $array[$n] . '
'; >
Результат:
Значение 1 Значение 2 Значение 3 Значение 4
Альтернативный синтаксис for
While – цикл с предусловием
Т.е. если перед началом итерации условие выполняется, то цикл продолжает свою работу.
Результат:
Альтернативный синтаксис while
Do-while – цикл с постусловием
В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-while не имеет альтернативного синтаксиса.
Результат:
Управление циклами
Break
Вызов break или break 1 в цикле останавливает его.
Для вложенных циклов используется break 2 и т.д.
Continue
Используется для пропуска итерации.
Результат:
Для вложенных циклов по аналогии с break 2 , break 3 – continue 2 , continue 3 .
Урок 6. Циклы в PHP
Сейчас мы приступим к одной из важнейших тем в изучении php — это циклы. Они используются практически на каждом сайте, где выводятся какие-либо динамические данные.
Цикл — это блок кода, который повторяет определённое действие (инструкцию), пока не будет выполнено условие. Например, выводить строку Привет, мир! пока количество действий (выводов строки) не достигнет 5. Каждое подобное исполнение (одно и более повторений) называется итерацией.
// переменные, с которыми будем работать
$num = 1;
$hello = "Привет, мир!";
// начинаем цикл
while ($num echo "$hello\n";
echo "Итерация номер: $num\n";
$num++; // Внимание! Тут увеличиваем количество показов. Теперь +1
// И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5
// Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!
>
?>
Демонстрация Скачать исходники
Каждый цикл делится на две составные части: условие выполнения цикла (когда, при каких условиях, до каких пор) и действие, программный код, который каждый раз выполняется, если цикл не закончен. Действие может состоять из одной и более инструкции, все из которых должны быть заключены в фигурные скобки <>.
Программный код цикла будет выполняться действие до тех пор, пока условие в цикле не вернёт FALSE. После этого исполнение кода со строки, расположенной уже после цикла. Иногда, по ошибке, можно сделать цикл, который не будет иметь логического конца и всегда будет TRUE. Такой цикл называют — бесконечным. Чтобы избежать создания подобного некорректного цикла следует внимательно проработать условие.
Цикл с предусловием while
В цикле while есть предусловие, которое при возвращении TRUE выполняет действие в теле цикла и возвращается к предусловию. Цикл работает до тех пор, пока предусловие не вернёт FALSE.
while (логическое выражение)
инструкция;
В качестве тела цикла выступает инструкция. В теле может содержатся один или несколько операторов. Перейдём к примеру.
// переменные, с которыми будем работать
$num = 1;
// начинаем цикл
while ($num echo "$num";
$num++; // Внимание! Тут увеличиваем количество показов. Теперь +1
// И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5
// Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!
>
// Выведет "12345"
?>
Цикл с постусловием do while
Данный цикл похож в своей работе на while, но отличается только тем, что проверка условия проходит после проработки инструкции (действия). То есть как минимум цикл проработает 1 раз.
do
тело цикла;
>
while (логическое выражение);
Теперь прошлый пример рассмотрим через цикл do while.
// переменные, с которыми будем работать
$num = 1;
// начинаем цикл
do echo "$num";
$num++;
> while ($num
// Выведет "12345"
?>
Как видите, результат получился тот же самый. Однако, если переменная $num сразу будет не соответствовать условию, например, будет равно 11, то 1 раз цикл всё равно проработает. Данный цикл используется редко, но всё же подобная конструкция востребована.
Цикл со счетчиком for
Цикл for также как все другие циклы выполняет действие определённое количество раз. Однако отличается сложной конструкцией, количеством аргументов и сравнительно большими возможностями.
for (инициализирующие команды; условие; команды после итерации) <
тело_цикла;
>
Цикл начинает работу с того, что инициализирует команды. Эта часть происходит в самом начале и проделывается только один раз. В ней мы, например, заносим переменные и их значения (переменных может быть несколько), которые в последствии будут обрабатываться: увеличиваться значение с каждым ходом цикла, сравниваться и так далее. Потом проверяется условие. Если оно истинно (true), то прорабатывается тело цикла. После проработки тела проделываются команды после итерации (хода цикла). В конце уже идёт возвращение к условиям, если истинно, то телу цикла, командам после итерации и так далее до победного.
Код PHP (несколько примеров)
for ($x=0; $x // Выводит 0123456789
// можно совместить условие и команды после итерации
for ($y=0; $y++ <10;) echo $y;
// Выводит 12345678910
// можно задать несколько переменных, условий, команд.
// Но они должны быть через запятую!
for ($a=0, $b=0; $a // Выводит 0123456789
// Любопытный пример
for($c=0,$d=0,$t="Zzz"; $c $t=$t.".";
echo $t;
>
// Выводит Zzz.Zzz..Zzz. Zzz.
?>
Цикл перебора массивов foreach
Данный вид цикла используется для обработки массивов. Появился с PHP 4.
foreach (массив as $ключ=>$значение)
команды;
Команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Пример работы цикла foreach:
$capitals["Россия"] = "Москва";
$capitals["Украина"] = "Киев";
$capitals["Беларусь"] = "Минск";
$capitals["Казахстан"] = "Астана";
foreach ($capitals as $key => $value) echo "$value - $key
";
>
?>
Москва — Россия
Киев — Украина
Минск — Беларусь
Астана — Казахстан
Но можно вывести только значения. Смотрим пример ниже
$capitals["Россия"] = "Москва";
$capitals["Украина"] = "Киев";
$capitals["Беларусь"] = "Минск";
$capitals["Казахстан"] = "Астана";
foreach ($capitals as $value) echo "$value ";
>
?>
Конструкция break
Периодически бывает, что нужно усложнить логику цикла и в какие-то его моменты, при определённом значении, выполнить дополнительные действия. Для таких случаев есть конструкция break, которая осуществляет выход из цикла. У неё есть один необязательный параметр — число, указывающее определённую вложенность цикла, то есть когда конструкция будет запущена. По умолчанию он равен 1, то есть при упоминании сразу действие цикла остановится.
Пример конструкции break:
$x=0;
while ($x++ <10) <
if ($x==3) break;
echo "$x
";
>
// Когда $x равен 3, цикл прерывается
// выведет "12"
?>
Конструкция continue
Конструкция continue нужна для немедленного прекращения текущей итерации цикла и переходу к следующей (если в цикле подразумевается предусловие). Как и для break, можно указать условие вложенности цикла, при котором конструкция вступит в действие.
Пример конструкции break:
$a=0;
while ($a++ <5) <
if ($a==3) continue;
echo "$a";
>
// Цикл пропустит третью итерацию
// Выведет "1245" Значение 3 будет пропущено.
?>
Конструкция goto
goto — оператор безусловного перехода. При упоминании goto и названия метки идёт поиск самой метки, куда нужно перейти. Сама метка ставится после оператора и имеет вид название: .
goto название_метки; // указываем желаемую метку
echo 'hello';
название_метки: // место перехода
echo 'world';
Пример goto
$a = 0;
for ($a = 0; $a < 10; $a++) if ($a == 5) // если значение переменной $a равно 5
goto end; // то переходим к выполнению инструкций следующих за меткой
echo "$a";
>
echo 'после цикла - до метки'; // инструкция не будет выполнена
end:
echo 'После метки';
?>
Спасибо за внимание и удачи в изучении php!
Структуры управления и циклы PHP: if, else, for, foreach, while и многое другое
Sajal Soni Last updated Oct 26, 2020
Сегодня мы обсудим структуры управления и циклы в PHP. Я покажу вам, как использовать все основные структуры управления, которые поддерживаются в PHP, например, if, else, foreach, while и многое другое.
Что такое структура управления?
Проще говоря, структура управления позволяет вам контролировать поток выполнения кода в вашем приложении. Как правило, программа выполняется последовательно, по очереди, а структура управления позволяет вам изменять этот поток, обычно в зависимости от определенных условий.
Структуры управления — это основные функции языка PHP, которые позволяют вашему сценарию реагировать по-разному на разные входные данные или ситуации. Это может позволить вашему сценарию давать разные ответы на основе пользовательского ввода, содержимого файла или некоторых других данных.
Следующая блок-схема объясняет, как структура управления работает в PHP.
Как видно на приведенной выше диаграмме, сначала проверяется условие. Если условие истинно, будет выполнен условный код. Важно отметить, что выполнение кода продолжается нормально после выполнения условного кода.
Рассмотрим следующий пример.
В приведенном выше примере программа проверяет, вошел ли пользователь в систему. На основе состояния входа пользователя они будут перенаправлены на страницу входа Login или на страницу учетной записи My Account. В этом случае структура управления завершает выполнение кода, перенаправляя пользователей на другую страницу. Это ключевая способность языка PHP.
PHP поддерживает несколько различных структур управления:
Давайте рассмотрим некоторые из этих структур управления на примерах.
Проходим через различные управляющие структуры
В предыдущем разделе мы изучили основы структур управления в PHP и их полезность при разработке приложений. В этом разделе мы рассмотрим пару важных структур управления, которые вы часто используете в повседневной разработке приложений.
If
Конструкция if позволяет вам выполнить часть кода, если прилагаемое выражение вместе с ней оценивается как true.
Давайте посмотрим на следующий пример, чтобы понять, как это работает.