Содержание

Конструкция if..else и тернарная операция

Конструкция if..else и тернарная операция

Последнее обновление: 07.03.2021

Условные конструкции позволяют направлять работу программы в зависимости от условия по одному из возможных путей. И одной из таких конструкций в языке PHP является конструкция if..else

Конструкция if..else

Конструкция if (условие) проверяет истинность некоторого условия, и если оно окажется истинным, то выполняется блок выражений, стоящих после if. Если же условие ложно, то есть равно false, тогда блок if не выполняется. Например:


<?php
$a = 4;
if($a>0){
	echo "Переменная a больше нуля";
}
echo "<br>конец выполнения программы";
?>

Блок выражений ограничивается фигурными скобками. И так как в данном случае условие истинно (то есть равно true): значение переменной $a больше 0, то блок инструкций в фигурных скобках также будет выполняться.

Если бы значение $a было бы меньше 0, то блок if не выполнялся.

Если блок if содержит всего одну инструкцию, то можно опустить фигурные скобки:


<?php
$a = 4;
if($a>0)
	echo "Переменная a больше нуля";
echo "<br>конец выполнения программы";
?>

Можно в одной строке поместить всю конструкцию:


if($a>0) echo "Переменная a больше нуля";

В данном случае к блоку if относится только инструкция echo "Переменная a больше нуля";

else

Блок else содержит инструкции, которые выполняются, если условие после if ложно, то есть равно false:


<?php
$a = 4;
if($a > 0){
	echo "Переменная a больше нуля";
}
else{
	echo "Переменная a меньше нуля";
}
echo "<br>конец выполнения программы";
?>

Если $a больше 0, то выполняется блок if, если нет, то выполняется блок else.

Поскольку здесь в обоих блоках по одной инструкции, также можно было не использовать фигурные скобки для определения блоков:


if($a > 0)
	echo "Переменная a больше нуля";
else
	echo "Переменная a меньше нуля";
elseif

Конструкция elseif вводит дополнительные условия в программу:


$a = 5;
if($a>0){
	echo "Переменная a больше нуля";
}
elseif($a < 0){
	echo "Переменная a меньше нуля";
}
else{
	echo "Переменная a равна нулю";
}

Можно добавить множество блоков elseif. И если ни одно из условий в if или elseif не выполняется, тогда срабатывает блок else.

Определение условия

Выше в качестве условия применялись операции сравнения. Однако в реальности в качестве условия может применяться любое выражение, а не только такое, которое возвращает true или false. Если передаваемое выражение равно 0, то оно интерпретируется как значение false. Другие значения рассматриваются как

true:


if (0) {} 		// false
if (-0.0) {} 	// false
if (-1) {} 		// true 
if ("") {} 		// false (пустая строка)
if ("a") {} 	// true (непустая строка)
if (null) {} 	// false (значие отсутствует)
Альтенативный синтаксис if

PHP также поддерживает альтернативный синтаксис для конструкции if..else, при которой вместо открывающей фигурной скобки ставится двоеточие, а в конце всей конструкции ставится ключевое слово endif.


$a = 5;
if($a > 0):
	echo "Переменная a больше нуля";
elseif($a < 0):
	echo "Переменная a меньше нуля";
else:
	echo "Переменная a равна нулю";
endif

Комбинированный режим HTML и PHP

Также мы можем написать конструкцию if. .else иным образом, переключаясь внутри конструкции на код HTML:


<!DOCTYPE html>
<html>
<head>
<title>METANIT.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php 
$a = 5;
?>

<?php if ($a > 0) { ?>
<h3>Переменная a больше нуля</h3>
<?php } ?>

</body>
</html>

В данном случае само условие указывется в отдельном блоке php: <?php if ($a > 0) { ?>

. Важно, что при этом этот блок содержит только открывающую фигурную скобку «{«.

Завершается конструкция if другим блоком php, который содержит закрывающую фигурную скобку: <?php } ?>

Между этими двумя блоками php располагается код, который отображается на html-странице, если условие в if истинно. Причем этот код представляет именно код html, поэтому здесь можно разместить различные элементы html, как в данном случае элемент <h3>

При необходимости можно добавить выражения else и elseif:


<!DOCTYPE html>
<html>
<head>
<title>METANIT.
COM</title> <meta charset="utf-8" /> </head> <body> <?php $a = -5; ?> <?php if ($a > 0) { ?> <h3>Переменная a больше нуля</h3> <?php } elseif($a < 0) { ?> <h3>Переменная a меньше нуля</h3> <?php } else { ?> <h3>Переменная a равна нулю</h3> <?php } ?> </body> </html>

Также можно применять альтернативный синтаксис:


<!DOCTYPE html>
<html>
<head>
<title>METANIT.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php 
$a = 0;
?>

<?php if ($a > 0): ?>
<h3>Переменная a больше нуля</h3>
<?php elseif($a < 0): ?>
<h3>Переменная a меньше нуля</h3>
<?php else: ?>
<h3>Переменная a равна нулю</h3>
<?php endif; ?>
</body>
</html>

Тернарная операция

Тернарная операция состоит из трех операндов и имеет следующее определение: [первый операнд - условие] ? [второй операнд] : [третий операнд].

В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true, то возвращается второй операнд; если условие равно false, то третий. Например:


$a = 1;
$b = 2;
$z = $a < $b ? $a + $b : $a - $b;
echo $z;

Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b. Иначе значение $z будет равняться $a - $b

Работа с конструкциями if-else, switch-case в PHP

Конструкция if-else

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

То есть нам нужно иметь возможность спросить у PHP ‘Если’.

Например так: если эта переменная меньше нуля, то вывести ‘отрицательно’, иначе (то есть если она больше нуля) вывести ‘положительно’.

В PHP для таких вопросов предназначена конструкция if, которая позволяет выполнять определенный код при выполнении какого-либо условия:

<?php
	if (логическое выражение) {
		Этот код выполниться,
		если логическое выражение верно (то есть равно true)
	}
 	else 
 	{
		Этот код выполнится,
		если логическое выражение неверно (то есть равно false)
	}
?>

Обратите внимание на то, что блок else не обязателен.

Логическое выражение представляет собой тот самый вопрос, который мы хотим задать PHP. Например, чтобы спросить ‘переменная $a больше нуля’ мы напишем так: $a > 0.

Примеры работы:

<?php
	$a = 3;

	/*
		Если переменная $a больше нуля, то выведи 'верно',
		иначе (если меньше или равна нулю) выведи 'неверно'
	*/
	if ($a > 0) {echo 'Верно!';} else {echo 'Неверно!';} //выведет 'Верно!'
?>
<?php
	$a = -3;

	/*
		Если переменная $a больше или равна нулю, то выведи 'верно',
		иначе (если меньше нуля) выведи 'неверно'
	*/
	if ($a >= 0) {echo 'Верно!';} else {echo 'Неверно!';} //выведет 'Неверно!'
?>

Сокращенный синтаксис

В случае, если в фигурный скобках if или else будет только одно выражение, можно эти фигурные скобки не писать:

<?php
	//Полный вариант:
	if ($a == 0) {echo 'Верно!';} else {echo 'Неверно!';}

	//Уберем скобки после if:
	if ($a == 0) echo 'Верно!'; else {echo 'Неверно!';}

	//Уберем скобки после else:
	if ($a == 0) {echo 'Верно!';} else echo 'Неверно!';

	/*
		Уберем скобки и после if, и после else
		(обратите внимание на точку с запятой - она осталась):
	*/
	if ($a == 0) echo 'Верно!'; else echo 'Неверно!'; 
?>

Равенство по значению и типу

Для того, чтобы сравнить на равенство следует использовать оператор двойное равно ==, а не одиночное =, как можно было подумать.

Почему так? Потому что одиночное равно зарезервировано за присваиванием. Смотрите пример:

<?php
	$a = 0;

	/*
		Если переменная $a равна нулю, то выведи 'верно',
		иначе (если не равна нулю) выведи 'неверно'
	*/
	if ($a == 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>

А следующий пример работать будет не так, как мы думаем:

<?php
	$a = 0;

	/*
		Мы думаем оно работает так:
			если переменная $a равна нулю, то выведи 'верно',
 			иначе (если не равна нулю) выведи 'неверно'.

		На самом деле оно работает так:
			переменной $a присвоить 1,
			если удалось присвоить - то выведи 'верно',
			иначе (если не удалось присвоить) выведи 'неверно'.
	*/

	if ($a = 1) echo 'Верно!'; else echo 'Неверно!'; //всегда будет выводить 'Верно!'
?>

Кроме оператора == существует еще и оператор ===. Их различие в том, что === сравнивает не только по значению, но и по типу, а == сравнивает только по значению.

Чтобы полностью разобраться в этом, внимательно изучите примеры:

<?php
	$a = '0'; //переменная $a представляет собой строку, а не число 0
	if ($a == 0) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Верно!', так как проверяется только значение, но не тип.
		Поэтому '0' равен 0.
	*/
?>
<?php
	$a = '0'; //переменная $a представляет собой строку, а не число 0
	if ($a === 0) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Неверно!', так как строка '0'
 		не равна числу 0 при сравнении по типу.
	*/
?>

Не равно

Для того, чтобы спросить ‘не равно’, существует операторы != и !==. Первый игнорирует различие в типах, а второй — нет.

<?php
	$a = 0;

	/*
		Если переменная $a НЕ равна нулю, то выведи 'верно',
		иначе (если не равна нулю) выведи 'неверно'
	*/
	if ($a != 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!', так как $a равно 0
?>
<?php
	$a = 1;

	/*
		Если переменная $a НЕ равна нулю, то выведи 'верно',
		иначе (если не равна нулю) выведи 'неверно'
	*/
	if ($a != 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a равно 0
?>
<?php
	$a = '0';

	/*
		Если переменная $a НЕ равна нулю, то выведи 'верно',
		иначе (если не равна нулю) выведи 'неверно'
	*/
	if ($a != 0) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Неверно!', так как $a равно '0',
		а различие в типах игнорируется. 
	*/
?>
<?php
	$a = '0';

	/*
		Если переменная $a НЕ равна нулю, то выведи 'верно',
		иначе (если не равна нулю) выведи 'неверно'
	*/
	if ($a !== 0) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Верно!', так как $a равно '0',
 		а это не равно 0 при сравнении по типу.
	*/
?>

Все операции сравнения

Возможные операции сравнения, которые можно использовать внутри if:

$a == $b$a равно $b
$a === $b$a равно $b и они одинаковы по типу
$a != $b$a не равно $b
$a !== $b$a не равно $b или $a равно $b, но ни разные по типу
$a$a меньше $b
$a > $b$a больше $b
$a$a меньше или равно $b
$a >= $b$a больше или равно $b

Функция empty

Зачастую в веб-программировании возникает следующая проблема: необходимо проверить переменную на пустоту.

Переменная будет пустая, если она равна нулю, » (пустой строке), false или null (то есть не определена ранее).

Проверка на пустоту выполняется с помощью функции empty():

<?php
	$a = null;
	//Если $a пустое, то...
	if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
	$a = 0;
	//Если $a пустое, то...
	if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
	$a = '';
	//Если $a пустое, то...
	if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
	$a = 'hi';
	//Если $a пустое, то...
	if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a не пустая
?>

Чаще возникает обратная задача — проверка на то, что переменная является НЕ пустой. Отрицание НЕ можно сделать с помощью оператора ‘!’:

<?php
	$a = null;
	//Если $a Непустое, то. ..
	if (!empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a пустое
?>

Функция isset

Аналогом empty является функция isset. Она проверяет существует ли переменная (то есть то, что она не равна null). Смотрите примеры:

<?php
	$a = 'hello';

	//Если $a существует, то...
	if (isset($a)) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Верно!', так как $a существует.
	*/
?>
<?php
	$a = 0;

	//Если $a существует, то...
	if (isset($a)) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Верно!', так как $a существует.
	*/
?>
<?php
	/*
		Пусть переменную $a вообще не определяли выше в коде
		(это все равно, что присвоить ей null).

		Если $a существует, то...
	*/
	if (isset($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!'
?>

Аналогично проверятся на НЕ существование (через !isset):

<?php
	$a = 3;

	//Если $a НЕ существует то. ..
	if (!isset($a)) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Неверно!', так как $a существует.
	*/
?>

Несколько условий сразу: or и and

Иногда может быть нужно составить какое-то сложное условие, например, пользователь вводит месяц своего рождения и вам нужно проверить, что введенное число больше или равно 1 и меньше либо равно 12 (так как в году 12 месяцев).

Для этого существуют операторы and (логическое И) и or (логическое ИЛИ).

<?php
	$a = 3;
	$b = -3;
	//Если $a больше нуля и $b одновременно меньше нуля то...
	if ($a > 0 and $b < 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'

	$a = 3;
	//Если $a больше или равно 1 и меньше или равно 12 то...
	if ($a >= 1 and $a <= 12) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'

	$a = -3;
	$b = -3;
	/*
		Если $a больше нуля ИЛИ $b меньше нуля - хотя бы один из них, то...
		выведет 'Верно!', так как хотя $a и не больше нуля,
		но одно из условий -  $b < 0 - выполнится!
	*/
	if ($a > 0 or $b < 0) echo 'Верно!'; else echo 'Неверно!';
?>

Вместо and можно писать &&, а вместо or||.

Работа с логическими переменными

Многие функции PHP в результате своей работы возвращают либо true (истина), либо false (ложь). Эти значения довольно удобны при своей работе, но новичкам бывает довольно сложно понять их.

Представим себе, что переменная $a равна true. В таком случае конструкцию if можно записать так:

<?php
	$a = true;

	//Если $a равно true, то...
	if ($a == true) echo 'Верно!'; else echo 'Неверно!';

	/*
		Выведет 'Верно!', так как $a равно true.
	*/
?>

Так как такие сравнения довольно распространены в PHP, то существует специальный прием, облегчающий работу (но не понимание, к сожалению).

Прием такой: конструкцию $a == true можно заменить на более простую: вместо if ($a == true) написать if ($a) и она будет работать аналогично.

Следует пользоваться второй конструкцией, так как она проще.

<?php
	/*
		Заменим  $a == true на более простую:
		вместо if ($a == true) напишем if ($a):
	*/

	$a = true;
	//Если $a равно true, то. ..
	if ($a) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!', так как $a равно true

	$a = true;
	//Если $a НЕ true (то есть false!), то...
	if (!$a) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a равно true
?>

Также обратите внимание на следующие примеры:

<?php
	//Данное выражение всегда будет выводить 'Верно'
	if (true) echo 'Верно!'; else echo 'Неверно!';

	//Данное выражение всегда будет выводить 'Неверно'
	if (false) echo 'Верно!'; else echo 'Неверно!';

	//Данное выражение всегда будет выводить 'Неверно'
	if (!true) echo 'Верно!'; else echo 'Неверно!';
 
	//Данное выражение всегда будет выводить 'Верно'
	if (!false) echo 'Верно!'; else echo 'Неверно!';
?>

Работа вместе с HTML

PHP устроен таким образом, что его можно использовать в одном файле с HTML. Представьте, что у нас возникает такая задача: если пользователь авторизован — вывести его логин, иначе ссылку на авторизацию. Ее можно решить, смешивая PHP код и HTML код вместе.

Посмотрите примеры:

<?php
	$a = true;
	if ($a) {
		//Данный HTML код будет виден на экране только если $a равно true
		echo '<p>Здесь выведем какой-то HTML!</p>';
	}
?>

Однако, очень часто это может оказаться неудобным, особенно если размеры HTML кода очень большие. Поэтому можно воспользоваться следующим приемом с разрывом PHP:

<?php
	//Пример на работу вместе с HTML
	$a = true;
	if ($a) {
		/*
			Мы оборвали PHP, но HTML код ниже
			все равно будет виден на экране только если $a равно true.
		*/
	?>
		<p>Здесь выведем какой-то HTML!</p>
	<?php
		/*
			Здесь мы продожаем PHP, открыв скобку <?php
			и закрываем фигурную скобку от ифа.
		*/
	}
?>

Вложенные if

Предположим, нам необходимо спросить у PHP такую вещь: если переменная $a пуста, то вывести ‘Введите $a’, если не пуста, то проверить — больше нуля $a или нет. Если больше нуля — то вывести ‘Больше нуля!’, если меньше — вывести ‘Меньше нуля’.

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

<?php
	if (empty($a)) { //если переменная $a пуста
		echo 'Введите $a!';
	} else { //если переменная $a НЕ пуста
		if ($a > 0) { //спрашиваем, больше ли нуля переменная $a
			echo 'Больше нуля!'; 
		} else {
			echo 'Меньше нуля!'; 
		}
	}
?>

Конструкция elseif

Недостатком конструкции предыдущего примера является большое количество фигурных скобок. Поэтому была изобретена специальная конструкция elseif (пишется слитно!), которая представляет собой одновременно и else, и начало вложенного if:

<?php
	//Решение предыдущей задачи через конструкцию elseif
	if (empty($a)) {
		echo 'Введите $a!';
	} elseif ($a > 0) { //одновременно выполняется else для empty($a) и спрашивается больше ли $a нуля
		echo 'Больше нуля!';
 	} else {
		echo 'Меньше нуля!';
	}
?>

Можно использовать несколько elseif, но злоупотреблять этим не стоит (лучше будет воспользоваться конструкцией switch-case, о которой ниже).

Несколько if

Пусть у нас есть такая задача: сайт поддерживает 3 языка — русский, английский, немецкий. Переменная $lang может принимать 3 значения — ‘ru’, ‘en’ и ‘de’. В зависимости от значения переменной $lang следует вывести фразу на одном из языков.

Решение: можно было бы воспользоваться вложенными ифами или elseif. Выглядело бы это примерно так:

<?php
	//Решение задачи через elseif – не самое удачное
	if ($a == 'ru') { //фраза на русском
		echo 'Русский текст';
	} elseif ($a == 'en') { //фраза на английском
		echo 'Английский текст';
	} elseif ($a == 'de') { //фраза на немецком
		echo 'Немецкий текст';
	}
?>

Такое решение не слишком красивое — блок else здесь не нужен! Проще всего будет написать не один длинный if с несколькими else, а несколько if вообще без else:

<?php
	//Решение задачи через несколько if – оно намного лучше
	if ($a == 'ru') { //фраза на русском
		echo 'Русский текст';
	} 
	if ($a == 'en') { //фраза на английском
		echo 'Английский текст';
	}
	if ($a == 'de') { //фраза на немецком
		echo 'Немецкий текст';
	}

	/*
		В данном коде сработает только один из ифов,
 		так как $a может иметь только одно из значений
	*/
?>

Однако, это решение тоже не слишком удобно. Представьте, что у вас будет не три языка, а 10 — вам придется написать 10 конструкций if.

Для таких случаев существует конструкция switch-case.

Конструкция switch-case

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

Изучите ее синтаксис:

<?php
	switch ($переменная) {
		case 'значение1':
 			здесь код, который выполнится в случае, если переменная имеет значение1;
		break;
		case 'значение2':
			здесь код, который выполнится в случае, если переменная имеет значение2;
		break;
		case 'значение3':
			здесь код, который выполнится в случае, если переменная имеет значение3;
		break;
		default:
			этот код выполнится в случае, если переменная не совпала ни с одним значением;
		break;
	}
?>

Решим нашу задачу с тремя языками с помощью данной конструкции:

<?php
	switch ($lang) {
		case 'ru':
			echo 'Русский текст';
 		break;
		case 'en': 
			echo 'Английский текст';
		break;
		case 'de': 
			echo 'Немецкий текст';
		break;
		default:
			echo 'Данный язык не поддерживается'; 
		break;
	}
?>

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

elseif/else if | Руководство по PHP

(PHP 4, PHP 5, PHP 7)

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b or a меньше, чем b:

<?php
if ($a > $b) {
    echo "a больше, чем b";
} elseif ($a == $b) {
    echo "a равен b";
} else {
    echo "a меньше, чем b";
}
?>

Может быть несколько elseif в одном if выражении. Первое же выражение elseif (если будет хоть одно) равное TRUE будет выполнено. В PHP вы также можете написать ‘else if’ (в два слова), и тогда поведение будет идентичным ‘elseif’ (в одно слово). Синтаксически значение немного отличается (если Вы знакомы с языком С, это тоже самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны FALSE, а текущий elseif равен TRUE.

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются двоеточие для определения условий if/elseif, Вы не должны разделять else if в два слова, иначе это вызовет фатальную ошибку в PHP.

<?php/* Некорректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
    echo "Строка выше вызывает фатальную ошибку.";
endif;/* Корректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
    echo $a." равно ".$b;
else:
    echo $a." не больше и не равно ".$b;
endif;?>

Вернуться к: Управляющие конструкции

Условие if-else в PHP

Условный оператор if-else часто называют оператором ветвления, т.к. он обеспечивает выполнение определенной команды только при условии истинности некоторого логического выражения. Его формат таков:

if (логическое выражение) итструкция1; else итструкция2;

if (логическое выражение)

    итструкция1;

else

    итструкция2;

Если логическое выражение истинно,то выполняется инструкция1, а иначе — инструкция2. Конструкция else может опускаться.

Это своего рода точка принятия решения в программе. Представим что интерпретатор PHP это человек собирающийся перейти дорогу и напишем для него инструкцию:

$light = «зеленый»; if ($light == «зеленый»){ echo «переходим дорогу»; } else{ echo»стоим на месте»; }

$light = «зеленый»;

if ($light == «зеленый»){

  echo «переходим дорогу»;

}

else{

echo»стоим на месте»;    

}

Рассмотрим эту конструкцию подробней. Мы пишем слово if и в круглых скобках указываем условие, после этого открываем фигурные скобки и в них описываем действие которое будет выполняться при этом условии. Дальше пишем слово else(что означает «иначе») и указываем в фигурных скобках как следует поступить программе, если первое условие не выполняется.

Оператор if-else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется проверить сразу несколько условий? Тут на помощь к нам придет конструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.

С использованием инструкции elseif оператор if-else будет выглядить так:

if (условие) { Блок, выполняемый если условие истинно } elseif (условие) { Блок, выполняемый, если условие истинно } else { Блок, выполняемый, если все условия ложны }

if (условие) {

   Блок, выполняемый если условие истинно

}

elseif (условие) {

    Блок, выполняемый, если условие истинно

}

else {

   Блок, выполняемый, если все условия ложны }

Обратите внимание, после закрывающей фигурной скобки не следует ставить точку с запятой.

Один условный оператор можно вложить в другой:

<?php $a=9; $b=33; if ($a > 0 && $b > 0){ if($a<$b){ echo «a меньше чем b»; } else{ echo «a больше чем b»; } } ?>

    <?php

    $a=9;

    $b=33;

    

    if ($a > 0 && $b > 0){

        if($a<$b){

            echo «a меньше чем b»;

}

            else{                

                echo «a больше чем b»;

}

        

}

    

    ?>

Т.е. выполняется внешнее условие и если все ок(в нашем случае если обе переменные больше нуля), то начинает выполнятся внутреннее условие. Если же внешнее условие не выполнится, то ничего не произойдет — инструкция остановится.

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое выражение): команды; elseif (другое логическое выражение): другие команды; else: иначе команды; endif

if (логическое выражение):

команды;

elseif (другое логическое выражение):

другие команды;

else:

иначе команды;

endif

Обратите внимание на расположение двоеточия. Его пропуск считаеться синтаксической ошибкой. Блоки else и elseif можно пропустить.

Оператор условия if else Основы PHP с нуля Урок №9


Оператор условия if else Основы PHP с нуля Урок №9

Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу вам об операторе условий if else. В буквальном переводе if означаете «если», а else – «иначе». Сама конструкция if else помогает сверять данные и выводить результат (выводить сообщения, выполнять какую-то команду, перенаправлять пользователя на секретную страницу или впускать в админ-панель). Чтобы научиться писать правильно условия и понять конструкцию if else, я наведу жизненный пример, который очень похож на конструкцию if else.
Вы даете своему мозгу команду: как только звучит будильник (6:00), я должен встать, умыться, почистить зубы, одеться и галопом бежать на работу. Если будильник не звонит в 6:00, значит можно спать, так как на работу бежать не нужно.
Вы заметили конструкцию if else? Условием будет установленное время будильника «6:00». Если будильник звонит, то встаем и бежим на работу, если не звонит (иначе, еще говорят ложь), значит, спим дальше.
Таких примеров жизненных можно навести массу, например: если идет дождь, то сижу дома, если нет дождя, тогда беру мяч и иду играть футбол.
Итак, как же можно записать конструкцию if else? Очень просто.
Пойдем поэтапно и начнем с простого условия – оператор if.

Оператор условия if

Для лучшего понимания я изобразил схему конструкции if в виде рисунка:

Теперь попробуем трансформировать жизненный пример, который я навел выше, в код php.


<?php
$weather = "дождь"; //значение
if ($weather=="дождь") // условие
{
echo "Я сижу дома"; // результат
}
?>

Если вы сохраните php файл с этим кодом и откроете его через локальный сервер (см. урок №3), то в результате получится:

Я сижу дома

⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением «дождь» (строка №3). Человеческим языком этот код звучит так: если переменная $weather равна значению «дождь», тогда выводить нужно текст «Я сижу дома«. Кстати, напомню вам (если подзабыли урок №8), что знак равенства обозначается двойным знаком «равно», вот так (==). Если к переменной $weather написать другое значение (строка №2), например, снег, тогда в браузере будет пустая страничка, так как условия не были соблюдены.

→ КОД-ШАБЛОН «КОНСТРУКЦИЯ if»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
}
?>

 

→ Шпаргалка:

Равенство: ==
Пример: if ($a == $b)

Не равенство: !=
Пример: if ($a != $b)

Больше: >
Пример: if ($a > $b)

Меньше: <
Пример: if ($a < $b)

Больше или равно: >=
Пример: if ($a >= $b)

Меньше или равно: <=
Пример: if ($a <= $b)

Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)

Логическое «или»: or, ||
Пример: if ($a ==$b || $c !=$d)

 

Оператор условия if-else

Теперь попробуем вывести сообщение, если условия не были соблюдены, а именно, если идет дождь, сижу дома, если нет дождя, беру мяч и иду играть футбол. Для лучшего понимания посмотрим рисунок снизу:

Теперь схему переведем в реальный код:


<?php
$weather = "солнце"; //значение
if ($weather=="дождь") //условие
{
echo "Я сижу дома"; //результат если условие верно
}
else
{
echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно
}
?>

Результат:

Я беру мяч и иду играть в футбол

⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением «дождь» (строка №3), но так как переменной $weather я присвоил значение «солнце» (строка №2), то условие не было соблюдено (значения не одинаковы), а это значит, что будет работать вторая часть кода (else):


else
{
echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно
}

→ КОД-ШАБЛОН «КОНСТРУКЦИЯ if-else»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
}
else
{
Этот код выполнится,
если условие не верно
}
?>

Двойное условие if-else

Переходим к более сложному – двойное условие if-else.
Давайте на примере создадим проверку пароля и логина.

Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке.

Приступим.
Создадим для начала две переменные $logo и $password с соответствующими значениями:


<?php
$logo = "StepkinBLOG"; //значение
$password = 1234567890; //значение
?>

Теперь создадим двойное условие для проверки переменных $logo и $password:


<?php
$logo = "StepkinBLOG"; //значение
$password = 1234567890; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие
{
echo "добро пожаловать в админ-панель"; //результат если условие верно
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Обратите внимание, в условии мы разделили две переменные оператором «AND». Это означает, что две переменные должны быть правильными для выполнения условия, но так как у нас в условии не совпадает пароль (стока№4), значит, условие неверное и на экране вы увидите вот такое сообщение:

Логин или пароль не верный

Если поменяете значение переменной $password на «123» (строка №3), тогда условия будут полностью соблюдены (строка №4):


<?php
$logo = "StepkinBLOG"; // значение
$password = 123; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие
{
echo "добро пожаловать в админ-панель"; //результат если условие верно
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Результат:

добро пожаловать в админ-панель

Вложенные конструкции if-else

Вложенная конструкция – это когда внутри конструкции находится еще одна конструкция. Не совсем понятно объяснил? Не беда, на примере все поймете.

Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке, если совпадают, тогда еще проверить секретное слово, если секретное слово не совпадает, вывести сообщение об ошибке, если совпадает, тогда вывести сообщение «добро пожаловать в админ-панель«.

Приступим:

Создадим для начала три переменные, $logo, $password и $x с соответствующими значениями:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
?>

Теперь создадим двойное условие для проверки переменных $logo и $password:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Теперь под комментарием » // тут будет еще одно условие с секретным словом» (строка №7) пропишите еще одну конструкцию if-else с условием проверки переменной $x:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "Stepa"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
if ($x = "BlogGOOD") //условие №2
{
echo "добро пожаловать в админ-панель"; //результат если условие верно №2
}
else
{
echo "секретное слово не верное"; //результат если условие не верно №2
}
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно №1
}
?>

Так как секретное слово неверное (строка №8), то на экране будет сообщение:

секретное слово неверное

Если вы замените значение переменной $x на «BlogGOOD», тогда и секретное слово будет правдивым:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
if ($x = "BlogGOOD") //условие №2
{
echo "добро пожаловать в админ-панель"; //результат если условие верно №2
}
else
{
echo "секретное слово неверное"; //результат если условие не верно №2
}
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно №1
}
?>

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

добро пожаловать в админ-панель

→ КОД-ШАБЛОН «ВЛОЖЕННАЯ КОНСТРУКЦИЯ if-else»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
if (условие)
{
Этот код выполнится,
если условие верно
}
else
{
Этот код выполнится,
если условие не верно
}

}
else
{
Этот код выполнится,
если условие не верно
}
?>

Оператор условия elseif

Конструкция elseif — это комбинация конструкций if и else, которая поможет проверить несколько условий подряд.

Синтаксис:


<?
if (условие)
{
действие
}
elseif (условие)
{
действие
}
elseif (условие)
{
действие
}
else
{
Действие, если ни один случай не подошел
}
?>

Заметьте, в строках №6 и №10 специально два слова написаны вместе «elseif», если вы их разделите пробелом «else if», то код выдаст ошибку.

Давайте приведу рабочий код с выбором учебника по программированию.

Пример:


<?
// Используем elseif
$stepkinblog = "PHP";
if ($stepkinblog == "C++")
{
echo "Вы заказали учебник по C++";
}
elseif ($stepkinblog == "JavaScript")
{
echo "Вы заказали учебник по JavaScript";
}
elseif ($stepkinblog == "PHP")
{
echo "Вы заказали учебник по PHP";
}
elseif ($stepkinblog == "JAVA")
{
echo "Вы заказали учебник по JAVA";
}
else
{
echo "Сделайте выбор"; //Действие, если ни один случай не подошел
}
?>

Результат:

Вы заказали учебник по PHP

Способ elseif можно записать так же и вложенной конструкцией if else:


<?php
// Используем if-else
$stepkinblog = "PHP";
if ($stepkinblog == "C++")
{
echo "Вы заказали учебник по C++";
}
else
{
if ($stepkinblog == "JavaScript")
{
echo "Вы заказали учебник по JavaScript";
}
else
{
if ($stepkinblog == "PHP")
{
echo "Вы заказали учебник по PHP";
}
else
{
if ($stepkinblog == "JAVA")
{
echo "Вы заказали учебник по JAVA";
}
else
{
echo "Зделайте выбор"; //Действие, если ни один случай не подошел
}
}
}
}
?>

Результат такой же, вот только запутаться легче (я  2 раза запутался в своем же коде ) .

Дополнение к уроку (пока знать не обязательно):

Есть еще несколько вариантов, как можно записывать конструкцию if else (альтернативный синтаксис).
Про альтернативный синтаксис я подготовлю целый урок, где все растолкую и покажу. Сейчас просто пробежитесь глазами.
Код №1:


<?php
$a = 15;
if ($a == 15):
?>
<h4> Переменная "$а" содержит значение 15 </h4>
<?php endif; ?>

Код №2:


<?php
$a = 6;
if ($a == 5):
echo " Переменная содержит значение 5";

elseif ($a == 6):
echo " Переменная содержит значение 6";

else:
echo " Переменная не содержит значение 5 и не 6";
endif;
?>

Домашнее задание:
Попробуйте в условии вместо равенства (==) поставить неравенство (!=) или попробовать со знаками больше меньше:


<?
$num = 1;
if ($num <= 10)
{
echo "переменная меньше или равна 10";
}
else
{
echo "переменная больше 10";
}
?>

а также замените оператор «AND» на «OR».

Все, жду вас на следующих уроках! Подписывайтесь на обновления блога!

Предыдущая запись
Как мы отдыхали в Геническе Следующая запись
Конструкция выбора – switch-case Основы PHP с нуля Урок №10

Уроки PHP — урок 8 — Оператор if

Довольно часто нам в зависимости от обстоятельств приходится принимать различные решения. В программировании как в жизни от условий приходится выбирать что делать. Если в жизни мы принимаем решения подумав головой, то в PHP мы используем оператор IF (если). Если пойдет дождь, я возьму зонт, если будет тепло, мы пойдем на пляж. Так в PHP мы проверяем выражения на истинность и выполняем соответствующие действия:

<?php
if(условие){
  Действие
}
?>

Еще обычно рисуют блок схемы для того чтобы показать как работает алгоритм:

 

Давайте разберем на примере конструкцию if:

<?php
if(5>3){
  print '5 больше чем 3';
}
?>

Пример довольно простой, даже очевидный, думаю настолько чтобы вы уловили как использовать if.

Ниже примеры использования операторов сравнения:

Оператор равенства:

<?php
  $x = 5;
  if($x == 5){
    print 'x равен 5';
  }
?>

Оператор не равно:

<?php
$x = 5;
if($x != 4){
  print 'x не равно 4';
}
?>

Оператор больше:

<?php
$x = 6;
if($x > 4){
  print 'x больше 4';
}
?>

Оператор меньше:

<?php
$x = 1;
if($x < 3){
  print 'x меньше 3';
}

Оператор больше или равно:

<?php
$x = 5;
if($x >= 5){
 print 'x больше или равно 5';
}
if($x > 5){
 print 'x больше 5'; //не выводится
}
?>

Оператор меньше или равно:

<?php
$x = 5;
if($x <= 5){
 print 'x меньше или равно 5';
}
if($x < 5){
 print 'x меньше 5'; //не выводится
}
?>

Также можно использовать сразу несколько условий для if. Для этого мы используем логические ИЛИ, И. В PHP оператор ИЛИ обозначается с помощью двух прямых ||, а оператор И с помощью двух амперсандов &&.

Если заданы условия с И, то действие будет выполнено когда оба условия верны. Когда заданы условия с ИЛИ, то действие будет выполнено, когда хотя бы одно из условий верно.

PHP if с использованием && (И):

<?php
$x = 4;
$y = 5;
if($x==4 && $y==5){
  print 'x равен 4, y равен 5';
}

if($x==3 && $y==5){
  print 'x равен 3, y равен 5'; // не выводится, потому что x не равен 3
}
?>

PHP if с использованием || (ИЛИ):

<?php
$x = 4;
$y = 5;
if($x == 4 || $y == 5){
  print 'x равно 4 или y равно 5<br />';
}

if($x == 3 || $y == 5){
  print 'x равно 3 или y равно 5<br />';
}

if($x == 4 || $y == 6){
  print 'x равно 4 или y равно 6<br />';
}

Во всех трех случаях хотя бы одно условие выполняется, поэтому будут выведены все три строки.

 

 

Помните я говорил про тип данных boolean или логический, так вот как раз в условие if можно использовать этот тип данных. if проверяет условие true или false.

Рассмотрите этот пример:

<?php
$condition = true;
if($condition){
  print 'Hello, World!';
}
?>

Но условие может быть не всегда верным, тогда мы добавляем else, чтобы задать два варианта использования if:

if(5>6){
  print 'пять больше шести';
}else{
  print 'Вы что с ума посходили, где вы это видели?';
}

Ну вот разобрались. Давайте еще рассмотри пару часто встречающихся на практике примеров:

<?php
$x=10;
if(empty($x)){
  print 'переменная пустая';
}else{
  print 'значение переменной ' . $x;
}
?>

Функция empty() проверяет пустая или нет переменная. Если переменная не пустая, то функция возвращает FALSE, а если пустая то возвращает TRUE. Мы можем также использовать оператор отрицания ! (восклицательный знак):

<?php
$x=10;
if(!empty($x)){
  print 'значение переменной ' . $x;
}else{
  print 'переменная пустая';
}
?>

Тогда то что было истинным станет неистинным, то что было неистенным станет истинным. И есть еще похожая функция isset(), которая проверяет наличие переменной вообще:

<?php
$x = '';
if(empty($x)){
	print 'переменная x пустая<br />';
}

if(isset($x)){
   print 'переменной x существует'; 
}

?>

Думаю, что для этого урока достаточно примеров и вы уже усвоили как можно применять оператор if. Приступим к следующему.

двойной && амперсант “и” и двойной || “или”

Пишу как заметку новичку, т.к. у самого были сомнения (php меня не учили, всё сам).
Так вот, в чем разница между двойным “и” амперсантом, или двойным “или”?
Грубо говоря, PHP условие: двойной && амперсант “и” и двойной || “или”,
говорит о том, что нужно проверять условия поочередно.

Т.е., допустим у Вас есть “условие1″ и “условие2″.

В итоге, если написать:


//первый вариант
if($uslovie1 & $uslovie2){...}

//второй вариант
if($uslovie1 && $uslovie2){...}


То, в первом случае, скрипт проверит первое условие, затем второе, затем посмотрим – оба ли они TRUE и решит что делать.
Во втором случае, т.е. ДВОЙНОМ, условия (что логично), проверяются по очереди…т.е. если условие1 уже не TRUE, то второе даже проверяться не будет.

Это легко проверить:


//функция выводит на экран "проверили а" и возвращает FALSE 
function a(){
	echo '
	Проверили A';return false;
}
//функция выводит на экран "проверили б" и возвращает TRUE
function b(){
	echo '
	Проверили Б';return true;
}
//теперь само условие, т.е. мы 
if(a() & b()){
    echo '
    >Условие выполнено';
}else{
    echo '
    >Условие не выполнено';
}
/* в результате получим:
Проверили A
Проверили Б
>Условие не выполнено

т.е. Скрипт проверил оба условия, а если использовать двойной амперсант:
*/

if(a() && b()){
    echo '
    >Условие выполнено';
}else{
    echo '
    >Условие не выполнено';
}
/* в результате получим:
Проверили A
>Условие не выполнено

т.е. Скрипт даже не проверял условие2, что очень удобно, если b() очень сложная функция,
которую и проверять не стоит, если условие1 (a()) уже не TRUE
*/

Таким же образом обстоят дела с оператором “ИЛИ”, т.е. | вертикальной чертой.

Если использовать if(условие1 | условие2){…} , то проверятся оба условия, затем будет принято решение, но это увеличит нагрузку…

А если использовать if(условие1 || условие2){…} , то при положительном условии1, условие2 даже проверяться не будет, т.к. “ИЛИ” и одно TRUE уже есть.

Думаю, кому-нибудь пригодится.
Удачи!


 

Комментарии



Похожие записи

PHP: условные выражения

Иногда, когда вы пишете код, вы хотите выполнять разные действия для разных решений. Для этого вы можете использовать в своем коде условные операторы. Условные операторы — это набор команд, используемых для выполнения различных действий в зависимости от различных условий. В этом руководстве мы рассмотрим две структуры: if … else и операторы переключения. Оба выполняют одну и ту же задачу.

Если … Другое заявление

Оператор If — это способ принимать решения на основе результата условия.Например, у вас может быть скрипт, который проверяет, является ли логическое значение истинным или ложным, содержит ли переменная числовое или строковое значение, является ли объект пустым или заполненным и т. Д. Условием может быть все, что вы выберете, и вы можете комбинировать условия вместе для более сложных действий.

Используйте оператор if для выполнения оператора, если логическое условие истинно. Используйте необязательное предложение else для выполнения оператора, если условие ложно. Синтаксис оператора If выглядит следующим образом:

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

Условием может быть любое выражение, которое оценивается как истинное или ложное.Если условие истинно, выполняются операторы_1; в противном случае выполняются инструкции_2. оператор_1 и оператор_2 может быть любым оператором, включая дополнительные вложенные операторы if.

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

if (condition_1) {
statement_1
}
[elseif (condition_2) {
statement_2
}]

[elseif (condition_n_1) {
statement_n_1
}]
[else {
statement_n
}]

Давайте посмотрим на примеры. В первом примере решается, сдал ли студент экзамен с проходным баллом 57:

.

$ результат = 70;

if ($ result> = 57) {
echo «Pass
«;
}
else {
echo «Fail
«;
}
?>

В следующем примере используется вариант elseif в инструкции if.Это позволяет нам проверить другие условия, если первое не было истинным. Программа будет последовательно проверять каждое условие до тех пор, пока:

  • Он находит истинное. В этом случае он выполняет код для этого условия.
  • Достигает оператора else. В этом случае он выполняет код в инструкции else.
  • Достигает конца структуры if … elseif … else. В этом случае он переходит к следующему оператору после условной структуры.

$ результат = 70;

if ($ result> = 75) {
echo «Пройден: оценка A
«;
}
elseif ($ result> = 60) {
echo «Пройден: оценка B
«;
}
elseif ($ result> = 45) {
echo «Пройдено: оценка C
«;
}
else {
echo «Failed
«;
}
?>

К началу

Заявление о коммутаторе

Операторы

Switch работают так же, как операторы if.Однако разница в том, что они могут проверять несколько значений. Конечно, вы делаете то же самое с несколькими операторами if..else, но это не всегда лучший подход.

Оператор switch позволяет программе оценить выражение и попытаться сопоставить значение выражения с меткой case. Если совпадение найдено, программа выполняет связанный оператор. Синтаксис оператора switch следующий:

переключатель (выражение) {
case label_1:
statement_1
[break;]
case label_2:
statement_2
[break;]

по умолчанию:
statement_n
[break;]
}

Программа сначала ищет предложение case с меткой, соответствующей значению выражения, а затем передает управление этому предложению, выполняя связанные операторы. Если соответствующая метка не найдена, программа ищет необязательное предложение по умолчанию и, если оно найдено, передает управление этому предложению, выполняя связанные операторы. Если предложение по умолчанию не найдено, программа продолжает выполнение с оператора, следующего за концом switch.Используйте break, чтобы предотвратить автоматический переход кода в следующий регистр.

Рассмотрим пример:


$ flower = «роза»;

switch ($ flower)
{
case «rose»:
echo $ flower. «Стоит 2,50 доллара»;
перерыв;
футляр «ромашка»:
echo $ flower. «Стоит 1,25 доллара»;
перерыв;
футляр «orchild»:
echo $ flower. «Стоит 1,50 доллара»;
перерыв;
по умолчанию:
echo «В нашем магазине такого цветка нет»;
перерыв;
}
?>

Однако, помимо простого равенства, вы также можете проверить выражение на предмет других условий, таких как отношения «больше» и «меньше».Выражение, которое вы проверяете, должно быть повторено в операторе case. Взгляните на пример:


$ myNumber = 5;

switch ($ myNumber) {
case 0:
echo «Ноль не является допустимым значением.»;
перерыв;
case $ myNumber <0:
echo «Отрицательные числа не допускаются.»;
перерыв;
по умолчанию:
echo «Отлично! Готовы производить вычисления.»;
перерыв;
}
?>

Если выражение успешно вычисляет значения, указанные в нескольких операторах case, будет выполнено только первое встреченное выражение.Как только совпадение найдено, PHP перестает искать другие совпадения.

Вернуться к началу

Правила преобразования типов в логические

  1. При преобразовании в логическое значение следующие значения считаются ЛОЖНЫМИ:
    • логическое Ложь
    • целое число ноль (0)
    • двойной ноль (0,0)
    • пустая строка и строка «0»
    • массив без элементов
    • объект без элементов
    • специальное значение NULL
  2. Любое другое значение считается ИСТИННЫМ.

В начало

PHP 7: фундаментальное руководство для начинающих — условные выражения If, Else и Elseif — DevOpsSchool.com

Условные операторы PHP

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

В PHP есть несколько операторов, которые можно использовать для принятия решений:

  • Оператор if
  • Оператор if … else
  • Оператор if … elseif … .else
  • Оператор switch … case

PHP — Оператор if

Оператор if используется для выполнения блока кода, только если указанное условие истинно. Это простейший из условных операторов PHP, который можно записать так:

Синтаксис :

if (условие) {
код, который должен выполняться, если условие истинно;
}

В следующем примере будет выведено «Хороших выходных!» если текущий день пятница:

Пример: —

Заявление if… else

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

Синтаксис: —

if (условие) {
// Код, выполняемый, если условие истинно
} else {
// Код, выполняемый, если условие ложно
}

В следующем примере будет выведено «Хороших выходных!» если текущий день — пятница, иначе будет выведено «Хорошего дня!»

Пример =>

Условие if… elseif… else Заявление

if… elseif… else специальный оператор, который используется для объединения нескольких операторов if… else.

Синтаксис:

if (condition1) {
// Код, который должен выполняться, если условие1 истинно
} elseif (condition2) {
// Код, выполняемый, если условие1 ложно, а условие2 истинно
} else {
// Код, который должен быть выполняется, если и условие1, и условие2 ложны
}

В следующем примере будет выведено «Введите допустимый процент»
Пример =>

Вы узнаете о PHP-операторе switch-case в следующем блоге

Инженер-программист — это человек, который применяет принципы программной инженерии к проектированию, разработке, обслуживанию, тестированию и оценке компьютерного программного обеспечения.

Последние сообщения от Dharmendra K (посмотреть все)

PHP If Else and Switch Case

If Else и Switch Case — это управляющие структуры, которые позволяют выполнять сегменты кода на основе заданных условий. Они создают динамическое поведение PHP.

Если

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

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
}
 

Если еще

Думаю, у вас есть общие предложения для других возрастных групп. Затем вы можете прикрепить оператор else, чтобы показать эти предложения, если пользователь не подросток.

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
} еще {
// Показать общие предложения
}
 

Если иначе

Если вы собираетесь представить какие-то предложения для взрослых (скажем, для людей старше 40 лет), вы можете использовать elseif и задать другое условие, чтобы проверить, превышает ли ваш возраст 40 лет.

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
} elseif ($ age> 40) {
// Показать предложения для взрослых
} еще {
// Показать общие предложения
}
 

Приведенный выше код сначала проверяет, является ли пользователь подростком. Если нет, то проверяется, взрослый ли он. Если это тоже false, он перейдет в блок else. Таким образом, у вас может быть больше блоков elseif, если у вас есть предложения для большего количества возрастных групп.

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

Условие операторов If

Обратите внимание, что условие операторов if всегда должно приводить к истинному или ложному результату. Если результат верен, будет выполнен немедленный блок кода. Если это false, управление перейдет к следующему условию elseif или заблокируется в зависимости от их доступности.

Корпус переключателя

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

 $ day = 'среда';

switch ($ day) {

case 'Monday':
echo 'Желаю начать все сначала!';
перерыв;

case 'среда':
echo 'Продолжайте. Удачи!';
перерыв;

case 'Friday':
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

default - это блок кода, который будет выполняться, если данное значение не совпадает с каким-либо из предопределенных значений. Он действует аналогично Else в If управляющих структур и является необязательным.

Если вы не укажете оператор break в блоке case, PHP будет выполнять следующие блоки, пока не найдет оператор break.Вы можете использовать это поведение, если вам нужно получить один и тот же результат для более чем одного случая.

 switch ($ day) {

case 'Monday':
echo 'Желаю начать все сначала!';
перерыв;

case 'Вторник':

case 'среда':

case 'Четверг':
echo 'Продолжайте. Удачи!';
перерыв;

case 'Friday':
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

В приведенном выше коде, если $ day совпадает со вторником, средой или четвергом, будет напечатано «Продолжить. Удачи!'.

If Else против корпуса Switch

If Else можно использовать в любом случае, когда необходимо провести сравнение.Каждый оператор If проверяет условие, и операнды, связанные с этим условием, могут отличаться от одного If к другому присоединенному Elseif .

Switch Case удобно использовать, когда одно и то же значение сравнивается с набором значений. В случае Switch Case , поскольку обычно нет условий для оценки, он может быть более эффективным по сравнению с аналогом Elseif .

Хотя это не является обычным явлением, условия могут использоваться в Switch Case .Обе модели Elseif и Switch Case ниже работают одинаково. Логическое значение true передается коммутатору Switch , так что выполнение всегда будет передаваться внутренним блокам кода.

 $ day = 'Пятница';
$ longShift = истина;

if ($ day == 'Monday') {
echo 'Желаю начать все сначала!';
} elseif ($ day == 'среда') {
echo 'Продолжайте. Удачи!';
} elseif ($ day == 'Friday' &&! $ longShift) {
echo «Счастливых выходных!»;
} еще {
echo «Добрый день!»;
}
 
 $ day = 'Пятница';
$ longShift = истина;

switch (true) {

case ($ day == 'понедельник'):
echo 'Желаю начать все сначала!';
перерыв;

case ($ day == 'среда'):
echo 'Продолжайте.Удачи!';
перерыв;

case ($ day == 'Friday' &&! $ longShift):
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

Тернарный оператор (сокращение If / Else)

Тернарный оператор позволяет нам возвращать одно из двух значений в зависимости от заданного условия. Его синтаксис показан ниже.

 (выражение)? (Если выражение истинно) :( если выражение ложно)
 

В следующем примере, если текущее время меньше 12 часов дня, будет напечатано Доброе утро! иначе он напечатает Добро пожаловать! .Как видите, тернарный оператор позволяет нам оценивать условия в одну строку.

 эхо (дата ('G') <12)? 'Доброе утро!' : 'Добро пожаловать!';
 

Мы также можем присвоить значение переменной и распечатать.

 $ приветствие = (дата ('G') <12)? 'Доброе утро!' : 'Добро пожаловать!';
эхо $ приветствие;
 

Начиная с PHP 5.3, можно опустить среднюю часть тернарного оператора. В следующем примере, если $ name не пусто, будет напечатано его значение. В противном случае будет напечатано Анонимный .

 эхо ($ имя)? : «Анонимный»;
 

PHP Если Заявление | кодирующие ребята

Если для принятия решений используются операторы If, и поэтому они используются часто.

Синтаксис

 if (condition) {
 код исполнения
} 

Условие оператора If оценивает что-то, что истинно; например, следующий код оценивает, равна ли переменная $ name «Asim»:

 $ name = 'Асим';

if ($ name == 'Asim') {
 echo «Добро пожаловать!»;
} 

Если вы попробуете это, вы должны получить результат Welcome displaying; однако, если вы измените имя переменной ($ name) на что-то вроде $ name = ‘asim’; это не сработает, так как $ name == ‘Asim’ неверно (PHP чувствителен к регистру).

Если еще

В этом случае вы можете использовать оператор If Else, поэтому, если $ name == не равно Asim, оно ложно, поэтому выполните оператор Else.

Синтаксис

 Если (условие) {
Выполнить код, если утверждение верно
} еще {
Выполнить, если утверждение ложно!
} 

Пример

 $ name = 'Асим';

if ($ name == 'Asim') {
echo «Добро пожаловать!»;
}  еще {
 echo 'Неизвестный пользователь!';
} 

Если имя переменной равно Asim, то будет выполнено «Добро пожаловать», в противном случае будет выполнено «Неизвестный пользователь», поскольку условие ложно.

Использование операторов

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

Пример - сравнение двух строк && (And) 0perator

  

Условие здесь просто переводится как «Если пользователь равен Asim , а пароль равен 12345 ″.Если условие истинно, то первая часть кода будет выполнена. В противном случае будет выполняться второй, поскольку условие ложно.

Пример - сравнение двух строк || (ИЛИ) оператор

  

Это похоже на оператор &&, однако на этот раз мы говорим: «Если пользователь равен« Asim », пароль ИЛИ равен 12345 ″.Условие будет истинным, потому что пользователь равен «Цель», но пароль равен 12345, поэтому пароль остается прежним. При использовании оператора OR только одна переменная должна быть истинной.

Пример - меньше или больше

Операторы «меньше» и «больше» применяются к числам.

  17) {
    echo 'Мое число больше 17, мое число ='. $ myNumber;
}еще{
    echo 'Ошибка: мой номер не больше 17 my number ='.$ myNumber;
}

?> 

В этом примере у нас есть переменная $ myNumber, которой присвоено значение 16, а затем мы проверяем, больше ли оно 17. Если это так, первая часть кода будет выполнена; в противном случае будет заявлено Иное. Вы также можете использовать операторы OR и &&, чтобы проверить, совпадают ли значения. Вышеупомянутое условие переводится как «если myNumber больше 17 ″.

Проблемы с учетом регистра

PHP - это язык с учетом регистра, и иногда вы можете не получить ожидаемых результатов.Например:

 $ favfood = "Пицца";

если ($ favfood == "пицца")
{
 echo «Пицца это!»;
}еще {
echo «Паста?»;
} 

Теперь в этом примере просто проверяется, совпадает ли favfood с «pizza». Здесь проблема в том, что случаи разные, поэтому это приведет к ложному. Мы считаем, что это правильный результат, потому что нас не интересует случай, но для компьютера это неправильный ответ.

Мы можем решить эту проблему, просто заставив регистр $ favfood понизить с помощью функции strtolower.

 $ favfood = "Пицца";

если (strtolower ($ favfood) == "пицца")
{
 echo «Пицца это!»;
}еще {
echo «Паста?»;
} 

Это выдаст ожидаемый результат. Помните, что если вы собираете данные о пользователях (в нескольких случаях, верхний / нижний), а затем сравниваете их, убедитесь, что вы изменили регистр, иначе вы не получите ожидаемых результатов. Вероятно, лучше всего отформатировать его в нижнем регистре, поскольку большинство людей обычно не набирают в верхнем регистре.

Операторы

Оператор Описание
< Менее
> Больше
== равно
|| или
&& и

Сводка

В этом руководстве рассказывалось, как использовать оператор If, а также как сравнивать результаты, а также решались вопросы, связанные с регистром.Помните, что выражения If оценивают условие, которое является истинным.

PHP If и PHP Else if Примеры условных операторов

Условные операторы PHP

Вы можете использовать условные операторы PHP If и PHP Else if в PHP для выполнения различных действий. Эти действия основаны на логике , которую вы хотите выполнить с помощью кода и получить результат действия.

Используя условные операторы, вы можете выполнять различные тесты в своем коде, и вы можете выполнять определенные действия, основанные на тесте, истинным или ложным.

В реальной жизни вы принимаете определенные решения и на основе этого решения выполняете различные действия. Эти решения помогут вам получить желаемый результат на выходе. Прежде чем принять какое-либо решение, вы всегда думаете об условиях , если вы выполните это задание, если вы получите такой результат.

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

  • PHP Оператор if
  • PHP Операторы If… else
  • PHP Операторы If… elseif… else

PHP Оператор if

PHP Оператор If - это условный оператор, который можно использовать, если вы хотите проверить одно условие и выполнить код, когда проверка верна.

Синтаксис

if (Condition) {

Поместите здесь свой код для выполнения, если условие истинно.

}

?>

Рассмотрим простой пример. У вас есть переменная $ x, и вы хотите вывести строку «Hello Friends» только тогда, когда значение переменной равно 9.Используя оператор PHP, вы можете выполнить этот процесс автоматически, не выполняя этого вручную.

Если вы застряли с кодами HTML, как это сделать, выполните эту задачу. У вас есть опция с использованием кода PHP и оператора if.

Пример 1 :

$ p = 8;

$ q = 1;

$ x = $ p + $ q;

if ($ x == 9) {

echo "Привет, друзья!"

}

echo "Добро пожаловать в Tutorialdeep PHP Tutorial.";

?>

Выход

Привет друзья! Добро пожаловать в Tutorialdeep PHP Tutorial.

PHP Операторы If… else

PHP Оператор If… else - это условный оператор, который вы можете использовать, если хотите выполнить один код, если условие истинно , а другой код, если условие не выполняется .

Синтаксис

if (Condition) {

Поместите здесь свой код для выполнения, если условие истинно.

} else {

Поместите сюда свой код для выполнения, если условие ложно.

}

?>

Рассмотрим простой пример. Предположим, у вас есть переменная $ z, и вы хотите напечатать строку «У меня большее число», если $ z больше 10, и другую строку «У меня меньшее число», если $ z не больше 10.Вы можете сделать это с помощью оператора if… else в своем коде.

Пример 2 :

10) { echo «У меня номер побольше»; }еще{ echo «У меня наименьшее число»; } echo "и добро пожаловать в Tutorialdeep PHP Tutorial."; ?>

$ x = 8;

$ y = 1;

$ z = $ x + $ y;

if ($ z> 10) {

echo "У меня большее число";

} else {

echo "У меня наименьшее число";

}

echo "и добро пожаловать в Tutorialdeep PHP Tutorial.";

?>

Выход

У меня наименьшее число и добро пожаловать в Tutorialdeep PHP Tutorial.

PHP Операторы If… elseif… else

PHP Оператор If… elseif… else - это условный оператор, который можно использовать, если вы хотите, , выполнить несколько тестов . С помощью этого условного оператора можно поставить более двух условий.

Синтаксис

if (Condition) {

Поместите здесь свой код для выполнения, если условие истинно.

} elseif (Условие) {

Поместите сюда свой код для выполнения, если это условие истинно.

} else {

Поместите сюда свой код, чтобы он выполнялся, если все условия ложны.

}

?>

Теперь предположим, что у вас есть переменная $ z и вы хотите напечатать строку «Число 10», если $ z равно 10, и другую строку «У меня наибольшее число», если $ z больше 10. Если оба условия неверны, вы хотите напечатать «Число меньше». Вы можете сделать это с помощью оператора if… elseif… else в своем коде.

10) { echo «У меня наибольшее число»; }еще{ echo «Число меньше»; } echo "и добро пожаловать в Tutorialdeep PHP Tutorial."; ?>

$ x = 8;

$ y = 9;

$ z = $ x + $ y;

if ($ z == 10) {

echo "Число 10";

} elseif ($ z> 10) {

echo "У меня наибольшее число";

} else {

echo "Число меньше";

}

echo "и Добро пожаловать в Tutorialdeep PHP Tutorial.";

?>

Выход

У меня их больше всего, и добро пожаловать в Tutorialdeep PHP Tutorial.

Вы также должны прочитать:

Ресурс

Похожие сообщения

PHP Заявление If Else | Умный техник

PHP | 10 янв, 2017 | Умный технарь

PHP оператор if else является условным оператором, в котором выполняется определенный код, если любое из условий оценивается как истинное или ложное.

Самая короткая форма оператора if - это использование только оператора if отдельно, когда вы хотите сопоставить условие и выполнить какое-либо действие на его основе, без захвата каких-либо дополнительных условий

$ answer = 42; если ($ answer == 42) { echo «Окончательный ответ - 42»; } // вывод: окончательный ответ - 42

Итак, если условное выражение ($ answer == 42) оценивается как истина, выполняется код между фигурными скобками оператора if, и если он оценивается как ложный, программа продолжает работу, ничего не печатая.

Если бы мы хотели зафиксировать ложное условие, мы бы добавили else к нашему оператору if.

$ answer = 50; если ($ answer == 42) { echo «Окончательный ответ - 42»; } еще { echo "Вы еще не поняли жизнь! Продолжайте пытаться!"; } // вывод: жизнь еще не выяснена! Продолжайте пытаться!

Затем, если мы хотим расширить наш оператор if и оценить дополнительное условие, мы просто добавим elseif.

$ answer = 13; если ($ answer == 42) { echo «Окончательный ответ - 42»; } elseif ($ answer == 13) { echo «Сегодня твой счастливый день!»; } еще { echo "Ваш ответ просто неправильный!"; } // вывод: Сегодня ваш счастливый день!

Итак, первое условие if проверяет, является ли $ answer 42, оно ложно, поэтому оно переходит к следующему условию elseif, на этот раз оно соответствует числу 13, поэтому оно печатает счастливое сообщение.Вы можете добавить любое количество условий elseif в оператор if.

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

$ answer = 42; $ правда = 1; если ($ answer == 42) { echo «Окончательный ответ - 42.»; // использование оператора if таким образом предполагает, что выражение является логическим (0 или 1) если ($ правда) { echo «Ты говоришь правду!»; } еще { echo «Это ложь!»; } } elseif ($ answer == 13) { echo «Сегодня твой счастливый день!»; если ($ правда) { echo «Ты говоришь правду!»; } еще { echo «Это ложь!»; } } еще { echo "Ваш ответ просто неправильный!"; } // вывод: окончательный ответ - 42.Вы говорите правду!

Альтернативный синтаксис оператора If

Существует несколько иной способ написания оператора if, как и для многих операторов PHP, который упрощает встраивание в HTML-код. Мы просто удаляем все фигурные скобки и используем вместо них двоеточие, также в конце оператора if используется дополнительное ключевое слово endif.

Добро пожаловать на мою веб-страницу

Тернарный оператор

Тернарный оператор - это краткая версия оператора if else, в тернарном операторе нет elseif, это просто true или false.Хороший способ запомнить этот оператор: это правда? Да: Нет. Утверждение состоит из вопросительного знака и двоеточия и пишется в одну строку.

$ are_you_okay = правда; echo $ are_you_okay? «Да я в порядке»: «Оставь меня в покое»; // вывод: Да, я в порядке

Итак, если условие истинно, выполняется код в левой части двоеточия, если оно ложно, будет выполняться код с правой стороны. В приведенном выше примере я использовал оператор echo, чтобы распечатать результат прямо на экране.Как вариант, результат можно сохранить в переменной:

$ are_you_okay = ложь; $ message = $ are_you_okay? «Да я в порядке»: «Оставь меня в покое»; echo $ message; // вывод: оставь меня в покое

Разница между elseif и else if в PHP - Амит Мерчант - Блог о PHP, JavaScript и многом другом

PHP иногда бывает забавным. В PHP есть много вещей, которые ведут себя не так, как вы думаете. Недавно я наткнулся на одну такую ​​вещь, работая над одним из своих проектов.

Существуют следующие способы записи двух или более условий в условных операторах. т.е. используя else if и elseif . Мы обсудим их обоих здесь.

Использование elseif в условных выражениях

Мы можем написать условный оператор, включающий два или более условий, как показано ниже.

  if ($ condition1) {
    // ...
} elseif ($ condition2) {
    // ...
} еще {
    // ...
}
  

В приведенном выше утверждении elseif - это один оператор сам по себе.Таким образом, он проверит первое условие $ condition1 , если оно станет false , затем будет проверено второе условие $ condition2 , и если оно станет истинным, PHP выполнит код в блоке, следующем за условием.

Использование «else if» в условных выражениях

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

  if ($ condition1) {
    // ...
} else if ($ condition2) {
    //...
} еще {
    // ...
}
  

Вы можете подумать, что приведенный выше пример и предыдущий с использованием elseif ведут себя одинаково, но в этом случае вы ошибаетесь. В приведенном выше случае else if интерпретируется как оператор if в else из первых if . Как видите, в этом случае условные выражения становятся вложенными.

Приведенный выше код фактически интерпретируется следующим образом:

  if ($ condition1) {
    //...
} еще {
    if ($ condition2) {
        // ...
    } еще {
        // ...
    }
}
  

Таким образом, в принципе, нет большой разницы в использовании else if против else if , кроме последнего, является «синтаксическим сахаром». Однако, если вы следуете стандартным рекомендациям PHP, PSR-2 фактически рекомендует использовать elseif вместо else if в качестве стандартного подхода.