Иногда может быть нужно составить какое-то
сложное условие. Для этого существуют операторы
and (логическое И) и or
(логическое ИЛИ).
Логическое И
Логическое И позволяет задать одновременность
условий. В следующем примере условие выполнится,
если переменная $num больше нуля и
одновременно меньше 10:
<?php
$num = 3;
if ($num > 0 and $num < 10) {
echo '+';
} else {
echo '-';
}
?>
Условия могут налагаться не на одну переменную,
а на разные. В следующем примере условие
выполнится, если переменная $num1
равна 2 и одновременно переменная
$num2 равна 3:
<?php
$num1 = 2;
$num2 = 3;
if ($num1 == 2 and $num2 == 3) {
echo '+';
} else {
echo '-';
}
?>
Проверьте то, что переменная $num
больше нуля и меньше 5.
Проверьте то, что переменная $num
больше или равна 10 и меньше или равна
20.
Проверьте то, что переменная $num1
равна или меньше 1, а переменная $num2
больше или равна 3.
Логическое ИЛИ
Логическое ИЛИ требует выполнения
хотя бы одного условия. В следующем примере
условие выполнится, если переменная $num1
больше 0 или переменная $num2
больше 0 (достаточно выполнения хотя
бы одного из условий):
<?php
$num1 = 10;
$num2 = -5;
if ($num1 > 0 or $num2 > 0) {
echo '+'; // сработает это
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num1 = -10;
$num2 = -10;
if ($num1 >= 0 or $num2 >= 0) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num1 = 0;
$num2 = 0;
if ($num1 >= 0 or $num2 >= 0) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num1 = 0;
$num2 = 5;
if ($num1 >= 0 or $num2 >= 0) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num1 = 5;
$num2 = 5;
if ($num1 >= 0 or $num2 >= 0) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num1 = -5;
$num2 = 15;
if ($num1 >= 0 or $num2 >= 0) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num = 1;
if ($num == 0 or $num == 1) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num = 2;
if ($num == 0 or $num == 1) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код определите, что выведется на экран:
<?php
$num = 2;
if ($num == 0 or $num == 1 or $num == 2) {
echo '+';
} else {
echo '-';
}
?>
Приоритет операций сравнения
Операция and имеет приоритет над or.
В следующем примере условие сработает, если
переменная $num от 0 до 5
ИЛИ от 10 до 20:
<?php
$num = 3;
if ($num > 0 and $num < 5 or $num > 10 and $num < 20) {
echo '+';
} else {
echo '-';
}
?>
Группировка условий
Хотя операция and и имеет приоритет
над or, часто удобнее использовать
группирующие круглые скобки, чтобы явно показать
приоритет операций:
<?php
$num = 3;
if ( ($num > 0 and $num < 5) or ($num > 10 and $num < 20) ) {
echo '+';
} else {
echo '-';
}
?>
Конечно же, группировка может быть использована и в том случае, когда вам нужен свой приоритет операций, а не тот, который получается по умолчанию.
В приведенном ниже коде укажите приоритет операций в явном виде:
<?php
$num = 3;
if ($num > 5 and $num < 10 or $num == 20) {
echo '+';
} else {
echo '-';
}
?>
В приведенном ниже коде укажите приоритет операций в явном виде:
<?php
$num = 3;
if ($num > 5 or $num > 0 and $num < 3) {
echo '+';
} else {
echo '-';
}
?>
В приведенном ниже коде укажите приоритет операций в явном виде:
<?php
$num = 3;
if ($num == 9 or $num > 10 and $num < 20 or $num > 20 and $num < 30) {
echo '+';
} else {
echo '-';
}
?>