abuzov.com » PHP » Самоучитель PHP для начинающих » 5. Условия в PHP
5. Условия в PHP

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

На данном этапе вникать в это не нужно — нужно, повторюсь, понять логику.

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

Наиболее простой и часто используемый оператор if имеет следующую конструкцию:

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

Самый простой пример оператора if с целыми числами:
<?php
$x = 10;
if ($x > 5) {
echo '$x больше 5';
}
?>

Результат:

$x больше 5

В данном примере логика предельно проста:

  1. Значение переменной $x равно 10;
  2. if проверяет значение (10) переменной ($x) больше 5 или нет;
  3. да, 10 больше 5, тогда выводим тест $x больше 5.

Как вы уже догадались, echo осуществляет вывод на экран. Вывод простого текста осуществляется в одинарных кавычках: ‘ какой-либо текст’.

if else

Но что если мы укажем другое значение $x, например 3 ?

<?php
$x = 3;
if ($x > 5) {
echo '$x больше 5';
}
else {
echo '$x меньше 5';
}
?>

Результат:

$x меньше 5

Из этого примера ясна логика работы конструкции if else:

<?php
$x = 3;
if (условие) {
если истина, выполняем код...
}
else {
если ложь, выполняем код...
}
?>

В нашем случае, это:

  1. Значение переменной $x равно 3;
  2. if проверяет значение (3) переменной ($x) больше 5 или нет;
  3. нет, 3 меньше 5, тогда выводим тест $x меньше 5;
  4. если вместо $x = 3; мы напишем $x = 10;, тогда;
  5. 10 больше 5, тогда выводим тест $x больше 5;

if else elseif

ОК, все понятно, идем дальше. А как быть если нужно проверить несколько условий:

  1. Число больше 10.
  2. Число равно 10.
  3. Число меньше 10.

В таком случае нам на помощь приходит конструкция if else elseif:
<?php
$x = 10;
if ($x > 10) {
echo '$x больше 10';
}
elseif ($x == 10) {
echo '$x равно 10';
}
else {
echo '$x меньше 10';
}
?>

Думаю тут логика ясна. В целом ничего сложного, согласитесь?

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

По факту тернарный оператор это сокращенная конструкция if else.
условие ? если истина : если ложь
Например, уже известный нами код:
<?php
$x = 3;
if ($x > 5) {
echo '$x больше 5';
}
else {
echo '$x меньше 5';
}
?>

Будет выглядеть следующим образом:
<?php
$x = 3;
echo ($x > 5) ? '$x больше 5' : '$x меньше 5';
?>

Эта запись гораздо компактнее и удобнее.

Оператор swithc

Оператор switch работает сходным с if образом, но он позволяет условию принимать больше значений (любое количество простых значений).

Логика его работы немного отличается от if. Switch проверяет приняло ли условие определенное значение, если да, то выполняется код и проверка останавливается, если нет, то switch переходит к следующей проверка и так далее.

Например:
<?php
$x = 3;
switch ($x) {
case 1:
echo '$x равно 1';
break;
case 2:
echo '$x равно 2';
break;
case 3:
echo '$x равно 3';
break;
case 4:
echo '$x равно 4';
break;
case 5:
echo '$x равно 5';
break;
}
?>

Результат:

$x равно 3

Переменная $x принимает значение 3. Каждый case проверяет значение $x, при совпадении значения $x со значением указанным в соответствующем case происходит выполнение кода. В данном случае выполняется код echo '$x равно 3';

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

Тогда на помощь приходит default, код в котором выполняется если ни одно значение в case не подошло.

Например:
<?php
$x = 30;
switch ($x) {
case 1:
echo '$x равно 1';
break;
case 2:
echo '$x равно 2';
break;
case 3:
echo '$x равно 3';
break;
case 4:
echo '$x равно 4';
break;
case 5:
echo '$x равно 5';
break;
default:
echo '$x не равно ни 1, ни 2.. ни даже 5';
}
?>

Результат:

$x не равно ни 1, ни 2.. ни даже 5

На этом все. Остались вопросы? Задавайте их в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете испольовать HTML теги и их атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">