Читать книгу Рисование цветных изображений с помощью PHP. Программирование для развлечения - Джеймс Уэллс - Страница 11
Циклы
ОглавлениеЧто такое цикл? Представьте, что ваши дети играют ночью, когда им пора ложиться спать.
Вы говорите им: «Дети, пора спать!».
Они продолжают играть.
Вы говорите им: «Дети, пора спать!».
Они продолжают играть.
И вы продолжаете говорить им одно и то же, пока они не пойдут спать.
В компьютерном программировании это называется циклом.
While Цикл
While ($kids!= «go to sleep»)
{
$say= «Let’s go to sleep»;
}
Посмотрите на пример цикла while ниже. $a++ означает увеличение значения $а на единицу. Это то же самое что
$a = $a +1;
Файл: while_loop.php
<?p
$a=0;
while ($a <5)
{
$a++;
echo ’a =». $a;
echo»,»;
}
?>
Output: a =1, a =2, a =3, a =4, a =5,
Значение переменной $a в цикле будет увеличиваться на 1 при каждом выполнении цикла, пока $a не достигнет 5. Затем цикл остановится. При использовании цикла while вы должны указать условия, при которых цикл останавливается. В противном случае он будет выполняться всегда и приведет к крушению компьютера.
Do While Цикл
В цикле while сначала проверяется условие. Если условие истинно, код выполняется. В цикле Do While условие проверяется после выполнения кода.
do {
$say= «Let’s go to sleep»;
} while ($kids!= «go to sleep»);
Файл: do_while.php
<?php
$b=0;
do {
$b++;
echo ’b =». $b;
echo»,»;
}
while ($b <5)
?>
output: b =1, b =2, b =3, b =4, b =5,
Вы можете увидеть разницу между циклами while и do while, если присвоить переменной значение, не удовлетворяющее условию.
$a=7;
while ($a <5)
{
$a++;
echo «a =». $a;
echo»,»;
}
Семь больше пяти. Поскольку условие проверяется перед выполнением кода, цикл while не будет выполняться и не будет иметь вывода.
$b=7;
do {
$b++;
echo ’b =». $b;
echo»,»;
}
while ($b <5)
Поскольку условие проверяется после выполнения кода, цикл do while выводит b = 8.
Семерка будет увеличена на единицу, и выполнение остановится.
For Цикл
For Цикл имеет следующую структуру.
for ($i =0; $i <3; $i++) {
echo «I =». $i. "<br>»;
}
The output:
I = 0
I = 1
I = 2
Цикл for удобен для перебора массива. Используя упомянутый ранее массив фруктов, мы можем отобразить все фрукты.
Вы можете использовать функцию count для возврата количества элементов в массиве.
Файл: fruit.php
<?php
$fruit = array («Apple», «Plum», «Orange», «Banana»,» Mango», «Lemon», «Pear»);
for ($i=0; $i <count ($fruit); $i++) {
echo $fruit [$i];
echo»,»;
}
?>
Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,
Вы можете вывести все ключи массива или ключ элемента по значению.
Файл: return_key.php
<?php
$fruit = array («Apple», «Plum», «Orange», «Banana»,» Mango», «Lemon», «Pear»);
echo “ <br> <br>»;
print_r (array_keys ($fruit));
echo “ <br> <br>»;
print_r (array_keys ($fruit, «Orange»));
?>
Output:
Array ([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4
[5] => 5 [6] => 6) //выводит все ключи
Array ([0] => 2) //выводит ключ только одного элемента
Функция print_r печатает массив.
Файл: colors_key.php
<?php
$colors=array («red»=> «#FF0000», «orange»=>
«#FFA500»);
echo “ <br> <br>»;
print_r (array_keys ($colors));
echo “ <br> <br>»;
print_r (array_keys ($colors, «#FF0000»));
?>
Output:
Array ([0] => red [1] => orange)
Array ([0] => red)
Цикл Foreach (Для каждого)
Иногда цикл foreach более удобен, потому что вам не нужно знать, сколько элементов в массиве. Вот пример цикла foreach с нашим массивом фруктов.
foreach ($fruit as $value) {
echo $value;
echo»,»;
}
Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,
Первый параметр в цикле foreach должен быть именем массива. В нашем случае это $fruit. Второй параметр может иметь любое имя. Тот же результат вы получите с помощью следующего кода.
foreach ($fruit as $anything) {
echo $anything;
echo»,»;
}
Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,
foreach ($colors as $color) {
echo $color;
echo»,»;
}
Output: #FF0000, #FFA500, #FFFF00, #008000,
Вы можете отображать в цикле foreach не только значения массива, но и ключи массива.
foreach ($colors as $key => $color) {
echo $key;
echo "=>»;
echo $color;
echo "<br>»;
Output:
red=> #FF0000
orange=> #FFA500
yellow=> #FFFF00
green=> #008000
Вы должны понимать, что использование точных слов для таких параметров, как $key и $color, необязательно.
Вы можете использовать любое слово для каждого. Существенным является только местоположение параметров.
foreach ($colors as $x => $y) {
echo $x;
echo "=>»;
echo $y;
echo "<br>»;
Output:
red=> #FF0000
orange=> #FFA500
yellow=> #FFFF00
green=> #008000