METANIT.COM

Операторы if else PHP

В этой статье мы расскажем, как использовать операторы if else PHP.

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

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

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

Ниже мы рассмотрим каждый из этих операторов.

Оператор if в PHP

Оператор if в PHP ( как и PHP elseif ) используется для выполнения блока кода только в том случае, если указанное условие имеет значение true . Это простейший условный оператор PHP , его можно записать следующим образом:

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница:

Оператор if . else PHP

Можно усложнить процесс принятия решений, предоставив альтернативный вариант. Для этого к if нужно добавить оператор else . Оператор if . else позволяет выполнить один блок кода, если указанное условие оценивается как true , а другой блок кода, если false .

Его можно записать следующим образом:

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница. Иначе выводиться « Хорошего дня! ».

Оператор if . elseif . else

if. elseif. else оператор ( не путать с PHP elseif else ) используется для объединения нескольких операторов if . else .

if(условие) < // Код, который будет выполнен, если условие истинно >elseif(условие) < // Код, который будет выполнен, если условие истинно >else< // Код, который будет выполнен, если условие ложно >

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница или «Хорошего воскресенья!» если сегодня воскресенье. В противном случае будет выводиться « Хорошего дня! ».

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

Тернарный оператор предоставляет сокращенный способ написания операторов if . else и elseif PHP . Тернарный оператор обозначается символом вопросительного знака ( ? ). Он принимает три операнда: условие для проверки, результат для true и результат для false .

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

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

Тернарный оператор в приведенном выше примере выбирает значение слева от двоеточия ( т. е. «Ребенок» ), если условие оценивается как true ( т. е. если $age меньше 18 ) и значение справа от двоеточия ( т.е. «Взрослый» ), если условие оценивается как false .

Читайте также:  Available method in java

Примечание . Код, написанный с использованием тернарного оператора, может быть трудно читаемым. Тем не менее, он предоставляет способ компактной записи операторов if-else и PHP elseif .

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

В PHP 7 был введен новый оператор нулевого коалесцирования ( ?? ), который можно использовать в качестве сокращенного обозначения тройного оператора в сочетании с функцией isset() .

Чтобы лучше понять, как это работает, рассмотрим приведенный ниже код. Он извлекает значение $_GET[‘имя’] . Если оно не существует или равно NULL , возвращается ‘ anonymous ‘.

Используя оператор нулевого коалесцирования вместо PHP elseif примера, этот же код можно записать в следующем виде:

Второй вариант синтаксиса является более компактным и простым в написании.

Вадим Дворников автор-переводчик статьи « PHP If…Else Statements »

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

Источник

Php ternary operator elseif

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

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

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

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

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

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

0) echo "Переменная a больше нуля"; echo "
конец выполнения программы"; ?>

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

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

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

else

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

 0) < echo "Переменная a больше нуля"; >else < echo "Переменная a меньше нуля"; >echo "
конец выполнения программы"; ?>

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

Читайте также:  Forum ucp php mode activate

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

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

elseif

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

Можно добавить множество блоков 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:

       0) < ?>

Переменная a больше нуля

?>

В данном случае само условие указывется в отдельном блоке php: 0) < ?>. Важно, что при этом этот блок содержит только открывающую фигурную скобку "

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

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

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

       0) < ?>

Переменная a больше нуля

elseif($a < 0) < ?>

Переменная a меньше нуля

else < ?>

Переменная a равна нулю

?>

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

       0): ?> 

Переменная a больше нуля

Переменная a меньше нуля

Переменная a равна нулю

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

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

Читайте также:  Java как работает volatile

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

Источник

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

В этом разделе пойдет разговор об операторе, выполняющем несколько нетипичные действия. Существует распространенная в программировании ситуация, когда в случае выполнения некоторого условия переменной необходимо присвоить одно значение и в случае невыполнения этого условия другое значение. В следующем примере переменной $min присваивается наименьшее из значений $foo и $bar c помощью конструкции if else :

На практике подобные действия оказались настолько распространенными, что был разработан специальный условный оператор , выполняющий данные действия - сокращенный способ присваивания значения переменной на основе выполнения того или иного условия. Этот оператор использует три операнда (по этой причине его часто называют тернарным ) и записывается с помощью двух знаков ' ? : '. Он является единственным оператором в PHP, который использует более двух операндов. С помощью тернарного оператора можно записать предыдущий пример следующим образом:

Сначала проверяется результат работы условного выражения, если условие вернет значение true , то переменной $min присвоиться значение переменной $foo , если false , значение переменной $bar .

Синтаксис тернарного оператора:

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

Первым делом интерпретатор PHP вычисляет значение условия, если оно возвращает true, переменной присваивается значение выражения, находящегося по левую сторону от двоеточия (в данном случае выражение1). Если условие возвращает false , переменной присваивается значение выражения, находящегося справа от двоеточия (в данном случае выражение2). Скобки вокруг условного выражения не обязательны, но их довольно часто употребляют для более легкого визуального восприятия тернарного оператора. Тернарные выражения вычисляются слева направо.

Тернарные операторы могут быть вложенными:

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

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

Выражение ($a1) ?: 10 возвращает значение переменной $a1 , если $a1 имеет значение TRUE , и 10 в противном случае.

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru

Источник

Оцените статью