Урок 6: Условия

Условия используются для выполнения части скрипта, только если некоторые предопределённые требования (условия/conditions) выполняются. Например, условие может требовать, чтобы дата была после January 1, 2012, или чтобы переменная была больше 7.

If...

Первый тип условия, который мы рассмотрим, называется документацияif, и оно имеет такой синтаксис:


	if (условие) {
	   оператор
	}
	
	

Этот синтаксис, опять-таки близок нормальному языку: If\если условие соответствует, то выполняется ещё что-то. Рассмотрим простой пример:


	<html>

	<head>
	<title>Циклы</title>
	</head>
	<body>

	<?php

	$x = 2;

	if ($x > 1) {
	   echo "<p>переменная $x больше 1</p>";
	}
	 
	?>

	</body>
	</html>
	
	

if ... else ...

Следующий тип условия, который мы рассмотрим, называется документацияelse , который может быть представлен в следующей форме:

	
	if (условие) {
	   оператор
	}
	else {
	   оператор
	}

	

Синтаксис: if\если условие соответствует, выполняется что-то, либо else\иначе выполняется ещё что-то.

В уроке 4 вы узнали, как определить число/день месяца. В следующем примере мы используем номер месяца в условии документацияif документацияelse для определения времени года:


	<html>
	<head>
	<title>Условия</title>
	</head>
	<body>

	<?php

	if (date ("m") == 3) {
	   echo "<p>Сейчас весна!</p> ";
	}
	else {
	   echo "<p>Я не знаю, какое сейчас время года!</p> ";	
	}

	?>

	</body>
	</html>
	
	

Как видите, это условие работает не особо тонко - оно выполняется, только если сейчас март!

Однако есть масса способов усложнить условие и сделать его работу более точной. Ниже перечислены операции сравнения, которые можно использовать в нашем операторе:

== равно
< меньше, чем
> больше, чем
<= меньше или равно
>= больше или равно
!= не равно

Кроме того существуют логические операции:

&& И
|| ИЛИ
! НЕ

Эти операции можно использовать для создания более сложных условий, так что мы теперь можем расширить предыдущий пример и включить в него все весенние месяцы:


	<html>
	<head>
	<title>Условия</title>

	</head>
	<body>

	<?php
 
	if (date("m") >= 3 && date("m") <= 5) {
	   echo "<p> Сейчас весна!</p> ";
	}
	else {
	   echo "<p> Сейчас, зима, лето или осень!</p> ";
	}
	 
	?>

	</body>
	</html>

	
	

Рассмотрим расширенное условие подробнее:

	date("m") >= 3 && date("m") <= 5 
	

Его можно расшифровать так:


	Если месяц больше или равен 3 и меньше или равен 5
	
	

Неплохо, а? Операции играют важную роль в PHP.

Но это работает только с мартом, апрелем и маем. Все другие месяцы не охватываются этим условием. Так что попытаемся усложнить условие ещё немного.

if ... elseif ... else...

Используя документацияelseif, мы можем расширить условие, и оно будет работать для всех месяцев:


	<html>
	<head>
	<title>Условия</title>

	</head>
	<body>

	<?php
 
	if (date("m") >= 3 && date("m") <= 5) {
	   echo "<p>Сейчас весна!</p>";
	}

	elseif (date("m") >= 6 && date("m") <= 8) {
	   echo "<p>Сейчас лето!</p>";
	}

	elseif (date("m") >= 9 && date("m") <= 11) {
	   echo "<p>Сейчас осень!</p>";
	}

	else {
	   echo "<p>Сейчас зима!</p>";
	}
	 
	?>

	</body>
	</html>

	
	

Написание условий требует методичности и логического подхода. Предыдущий пример достаточно прямолинеен, но условия могут быть весьма сложными.

switch ... case

Другой способ написания условий - использование метода документацияswitch:


	switch (выражение) {
 
	case 1: 
	   оператор
	   break;	
	case 2: 
	   оператор
	   break; 
	default:
	   оператор
	   break;
	}
	
	

Этот метод основан на выражении и перечисляет различные "ответы" или "значения" с соответствующими операторами. Проще всего объяснить работу этого метода на примере.

Как вы помните из урока 4, функция документацияdate("w") возвращает текущий день недели. Можно использовать это в нашем примере, где выводится названия дня (вместо цифры):


	<html>
	<head>
	<title>Условия</title>
	</head>
	<body>

	<?php
 
	switch(date("w")) {
	 
	case 1:
	   echo "Сегодня понедельник";
	   break;
	case 2:
	   echo "Сегодня вторник";
	   break;
	case 3:
	   echo "Сегодня среда";
	   break;
	case 4:
	   echo "Сегодня четверг";
	   break;
	case 5:
	   echo "Сегодня пятница";
	   break;
	case 6:
	   echo "Сегодня суббота";
	   break;
	default:
	   echo "Сегодня воскресенье";
	   break;
	 
	}
	 
	?>

	</body>
	</html>
	
	

Часто документацияswitch может быть альтернативой условиям документацияif документацияelse. Что использовать в конкретной ситуации - зависит от того, какой метод представляется вам наиболее простым и логичным. Сделать ваши логичными и понятными - вот ваша задача.

В следующем уроке мы рассмотрим, как добавлять комментарии в скрипты для пояснения их работы. Хорошие комментарии могут понадобиться если вы или кто-то ещё захочет в будущем внести изменения в код.



<< Урок 5: Циклы

Урок 7: Комментарии в скрипте >>