Условия if, elseif, else в PHP

PHP

Конструкция if и её компоненты elseif и else составляют основополагающую часть языков программирования, к которым относится PHP. С её помощью можно сравнивать значения переменных и выполнять различные действия в зависимости от того или иного результата. Структура записи логических операций здесь идентична представленном в языке C формате, однако и при отсутствии опыта можно быстро разобраться в этом вопросе.

Как переводятся названия частей

Всё предельно просто:

  • if – если. Всегда стоит перед остальными условиями. На одной строчке с ним в скобках должно находиться сравниваемое выражение, а также открывающаяся фигурная скобка, а перед закрывающей – действие, которое должно быть выполнено при полном соответствии;
  • elseif – иначе, если. Указывать следует в случае, когда первое условие оказалось неправильным, но нужно добавить ещё одно сравнение. Также, можно записать компонент двумя словами: else if. Это приведёт к одинаковому результату. В одном условии может присутствовать в неограниченном количестве;
  • else – иначе. Срабатывает, когда остальные условия оказались ложными (недействительными).

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

В каких случаях применяется

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

Из этого описания может показаться, что if, elseif и else– сложная конструкция, однако это совершенно не так. Убедиться в отсутствии каких-либо трудностей можно благодаря примерам, приведённым в данном тексте.

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

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

Несмотря на существование, пользоваться им необязательно – достаточно экранировать упомянутые выше знаки добавлением обратной косой черты (\) перед каждой из них, однако это действие займёт особо большое время при попытках вывести большой фрагмент кода.Совмещать несколько синтаксисов в одном блоке, располагающемся между <?и ?>, запрещено.

Логические операторы PHP

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

  • and (&&) – «и»;
  • or (||) – «или»;
  • ! – отрицание;
  • xor – исключающее или.

В скобках к пунктам указаны их более приоритетные варианты,используемые в сложных конструкциях. То есть, вместо if($a== 4 and $b==1) можно указать if($a == 4 && $b== 1). Несмотря на нецелесообразность установки приоритетов в подобных ситуациях, данный код также приведёт к идентичному результату.

Последний пункт может вызвать некоторые затруднения, объясняемые отсутствием слова «xor» в английском языке. Этот оператор можно описать как «и, но не оба одновременно». Не стоит путать элементы списка с условными операторами – они являются предметом материала в целом.

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

Использование этой особенности PHP спорно, поскольку помимо обеспечиваемой ею экономии времени на написании производится ухудшение читаемости кода. Но не стоит переживать – тернарный оператор эффективен для небольших сравнений и записей. Он представляет собой сокращённую форму if-elseif-else.
Подробнее оператор описан в разделе примеров.

Оператор нулевого коалесцирования

Крупное обновление языка, названное PHP7, принесло новый оператор, записываемый двумя знаками вопроса (??)и, аналогично предыдущему, призванный сократить код. Им предполагается работа с функцией isset(), которая определяет, не равна ли переменная null. Если её значение отличается от этой, будет возвращено true, иначе – false.

Примеры использования

Простое сравнение чисел

<?
$a = 123;
$b = 123;

if($a == $b) {
echo»AэтоB»;
} else {
echo»А это не B»;
}
?>

Результатом выполнения станет вывод«A это B».

Сравнение чисел с elseif

<?
$a = 1;
$b = 2;
$c = 3;
if($a == $b) {
echo»A это B»;
} elseif($b < 3) {
echo»3 больше, чем B»;
} elseif($c == 1) {
echo»C это 1″;
} else {
echo»Что-то другое…»;
}
?>

В результате будет возвращено «3 больше, чем B». Пример не просто объясняет логику работы elseif, но также демонстрирует возможность использования этого оператора в количестве более одного.

Сравнение с альтернативным синтаксисом

<?
$a = 1;
$b = 2;
if($a == $b) {
echo»<b style=\»color: red\»>A это B</b>»;
} else {
echo»<b style=\»color: darkgreen\»>A этоне B</b>»;
}

Условие выше написано в обычном синтаксисе. Как видно, перед кавычками установлен обратный слэш (\), служащий для экранирования кавычек – в противном случае код просто не скомпилируется.

Несмотря на работоспособность данного способа, следующая форма записи более подходит для вывода HTML-тегов с указанными для них свойствами и особенно актуальна при параллельной работе с другими языками программирования – например, JavaScript.

<?
$a = 1;
$b = 2;
if($a == $b):?>
<b style=»color: red»>A это B</b>
<?else:?>
<b style=»color: darkgreen»>A это не B</b>
<?endif?>

Как видно, здесь присутствует ранее неупомянутый оператор endif. Он используется только в данном синтаксисе и служит для предоставления компилятору понимания, где завершается условие. Здесь теги выдаются без какого-либо экранирования и даже команды echo.

В обеих случаях на экране появится надпись «А это не B», написанная тёмно-зелёным цветом.

Двойное сравнение

<?
$a = 1;
$b = 1;
if($a == $band $b !== 1) {
echo»A и B равны друг другу и B не равен 1.»;
} else {
echo»A и B не равны друг другу, и/или B равен 1.»;
}
?>

Итог – вывод на экран надписи «A и B не равны друг другу, и/или B равен 1».

Сравнения с тернарным оператором

В следующем примере сравнивается, является ли значение переменной $a меньшим, чем у $b. По итогу определяется переменная $c:

<?
$c = ($a < $b) ? $a : $b;
?>

Сравнения с оператором нулевого коалесцирования

В следующем примере предполагается наличие какой-либо формы, где POST-запросом было передано значение поля name.

<?php
$name = $_POST[‘name’] ?? ‘unknown’;
?>

Здесь переменной $name становится значение поля name. Если же её длина равна нулю символов или null, в $name записывается unknown.

Итог

Это – все основные варианты применения конструкции if-elseif-else, которые могут использоваться как и в простых операциях, так и при обработке большого количества данных.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector