Иногда может быть нужно составить какое-то
сложное условие. Для этого существуют операторы
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 '-';
}
?>