Ветвления или условные выражения выполняют ту или иную часть кода, в зависимости от того вернет условие истину либо ложь.
|
1 2 3 4 5 6 |
Если (a > $b) { echo $a; } Если (b > a) { echo $b; |
if
Есть 2 числа.
8 и 10
1 нужно вывести на экран наибольшее
2 нужно вывести на экран наименьшее
Способы используем разные, но только по средствам ветвления
Выучим английское слово if — если
Выводим наибольшее число
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $a = 8; $b = 10; if (a > $b) { echo $a; } if (b > a) { echo $b; } ?> |
В результате на экран выведется 10
if и else
Выводим наименьшее число используя if и else
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php $a = 8; $b = 10; if ($a < $b) { //если $a < $b echo $a; // Выводим Sa } else { // иначе echo $b; // Выводим Sb } ?> |
В результате на экран выведется 8
Еще одна задача: в переменную h будем подставлять значение от 0 до 23. В зависимости от значения этой переменной php будет оповещать нас о том, какое сейчас время суток. День, ночь, вечер либо утро.
от 0 до 5 = night
от 6 до 11 = morning
от 12 до 17 = day
от 18 до 23 = afternoon
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $morning = 'утро'; $day = 'день'; $afternoon = 'вечер'; $night = 'ночь'; $h = 0; if ($h <= 5) { echo $night; } elseif ($h >= 6 && $h <= 11){ echo $morning; } elseif ($h > 11 && $h <= 17){ echo $day; } else echo $afternoon; php?> |
Добавим в echo переменную h и слово это. Должно получиться так: 22 это вечер. 0 это ночь.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php $morning = 'утро'; $day = 'день'; $afternoon = 'вечер'; $night = 'ночь'; $h = 23; if ($h <= 5) { echo $h .'это'.$night; } elseif ($h >= 6 && $h <= 11){ echo $morning; } // проверку $h >= 6 можно не проводить, т.к. эта проверка была проведена выше и перейдя в эту строку php хранит результат этой проверки в своей памяти. // можно записать так:elseif ($h <= 11) Убрав проверку $h >= 6 elseif ($h > 11 && $h <= 17){ echo $day; } // Убираем лишнюю проверку: elseif ($h <= 17) else echo $afternoon; php?> echo $h .'это'.$morning; } elseif ($h > 11 && $h <= 17){ echo $h .'это'.$day; } else echo $h .'это'. $afternoon; php?> //результат: 22этовечер |
Запишем похожий код, убрав лишние проверки
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php $h = date(H); if ($h < 5){ echo $h = 'night'; } elseif ($h < 11){ echo $h = 'morning'; } elseif ($h < 17){ echo $h = 'day'; } else { echo $h = 'evening'; } // Ранее мы делали дополнительную проверку, записывая так: elseif $h <=6 && $h <= 11 {echo ....} // Однако проводить дополнительную проверку необязательно, в ней нет смысла, т.к. такая проверка будет излишней. Она конечно не помешает, но тем не менее... // в строке 8 elseif уже содержит информацию от вышестоящего if, в котором мы уже проверили $h меньше чем 5 или нет. Если да, отработает echo, если нет, получим значение ложь,перейдем к строке 12, проверим еще одно утверждение, а именно: $h < 17 или нет. Если получим истину, отработает echo, если ложь, спускаемся ниже. php?> |
Как уже говорилось, else как впрочем и elseif «помнит» результат ветви, которая происходила выше. Если мы проверяем одно значение и спускаемся на ветвь ниже, то повторно проверять значение, которое проверялось выше не нужно
|
1 2 3 4 5 6 7 |
если (2 > 5){ // if выводим на экран "Правда!!!" } иначе { // else Выводим на экрон ложь; } |
Сделаем результат выполнения кода еще более интересным.
Сделаем так: 11 это утро показываем картинку утро.
Для этого сохраним в папку img 4 картинки: night.jpg, morning.jpg, day.jpg, afternoon.jpg
Новый код будет выглядеть так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$h = date(H); // показывает время (часы) if ($h <= 5) { echo $h . ' '.'это'.' '.$night . ' ' .'показываем картинку' .' ' .$night ; $t = 'night.jpg'; // в переменную t записывается название картинки. } elseif ($h >= 6 && $h <= 11){ echo $h . ' '.'это'.' '.$morning . ' ' .'показываем картинку' .' ' .$morning ; $t = 'morning.jpg'; } elseif ($h > 11 && $h <= 17){ echo $h . ' '.'это'.' '.$day . ' ' .'показываем картинку' .' ' .$day ; $t = 'day.jpg'; } else{ echo $h . ' '.'это'.' '.$afternoon . ' ' .'показываем картинку' .' ' .$afternoon ; $t = 'afternoon.jpg'; } echo '<br>' . $t . '<br>'; php?> <img src="img/<?php echo $t; php?>" alt=""> |
Если же нам нужно сделать так, что бы при обновлении страницы каждый раз показывалась новая картинка (в нашем случае их 4), можно воспользоваться функцией mt_rand();
mt_rand — генерирует рандомное число. Передадим ей параметры 0 и 23.
mt_rand(0,23);
Весь код останется прежним. Меняется только верхняя строчка, но теперь изображение будет меняться каждый раз при перезагрузке страницы.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$h = mt_rand(0,23); // Возвращает случайное число от 0 до 23 if ($h <= 5) { echo $h . ' '.'это'.' '.$night . ' ' .'показываем картинку' .' ' .$night ; $t = 'night.jpg'; } elseif ($h >= 6 && $h <= 11){ echo $h . ' '.'это'.' '.$morning . ' ' .'показываем картинку' .' ' .$morning ; $t = 'morning.jpg'; } elseif ($h > 11 && $h <= 17){ echo $h . ' '.'это'.' '.$day . ' ' .'показываем картинку' .' ' .$day ; $t = 'day.jpg'; } else{ echo $h . ' '.'это'.' '.$afternoon . ' ' .'показываем картинку' .' ' .$afternoon ; $t = 'afternoon.jpg'; } echo '<br>' . $t . '<br>'; php?> <img src="img/<?php echo $t; php?>" alt=""> |