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

PHP: if else

  • Оператор if
  • Оператор if else
  • Конструкция elseif/else if

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

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

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

Оператор if

Оператор if является наиболее простым из операторов ветвлений.

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

Оператор if сначала вычисляет условное выражение указанное в круглых скобках, результатом этого выражения является булево значение. Если полученный результат является истинным (true), то инструкция выполняется. Если выражение возвращает ложное значение (false), то инструкция не выполняется. В качестве условия может применяться выражение любой сложности.

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

Следующий код демонстрирует применение оператора if:

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

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

Оператор if else

И так мы узнали, что оператор if позволяет выполнять инструкции в том случае, если условие истинно. Если же условие оказывается ложно, то никаких действий не выполняется.

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

Оно состоит из оператора if, за которым следует блок инструкций и ключевого слова else, за которым следует другой блок инструкций.

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

Обратите внимание
Совет

Оператор else не является обязательным. Блок инструкций расположенный после else выполняется по умолчанию, т.е. когда условное выражение в if возвращает значение false. Оператор else не может быть использован отдельно от оператора if. Блок else должен располагаться только после оператора if, его можно рассматривать, как действие по умолчанию.

[/su_box]

Немного изменив наш предыдущий пример, мы можем увидеть, как работает оператор if else, если условие возвращает значение false:

Оператор if else может быть вложенным. Такие вложенные условные операторы встречаются на практике достаточно часто. Оператор if является вложенным, если он расположен внутри другого блока if или else. Если в коде используется несколько операторов if подряд, то else всегда относится к ближайшему if:

Последний else не относится к if($a), так как он находится не во внутреннем блоке, поэтому ближайший к нему получается if($i). Оператор else расположенный внутри блока относится к if($b), потому что этот if — является ближайшим к нему.

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

Оператор if/else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется выполнить один из многих фрагментов? Если вам нужно проверить несколько условий подряд, то для этого подойдет конструкция elseif или else if (это одна и та же конструкция, просто по разному записана).

Формально она не является самостоятельной конструкцией PHP — это лишь распространенный стиль программирования, заключающийся в применении повторяющихся операторов if/else. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.

Конструкция elseif/else if должна располагаться после оператора if и перед оператором else, если такой имеется.

Здесь проверяется три условия, и, в зависимости от значения переменной $username, выполняются разные действия.

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

С этой темой смотрят:

  • Тернарный оператор
  • switch
  • Альтернативный синтаксис

Источник: https://puzzleweb.ru/php/17_if_else.php

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

Эта тема важна как и типы данных. Без понимания условного оператора if-else вы не напишите сложный скрипт. Нужно вывести из кожи для того чтобы не использовать условный оператор. Можно обойти условный оператор, используя шаблоны проектирования и массивы PHP. Это довольно сложные решения.

Я несколько недель изучал, как работает этот оператор. После понимания работы условного оператора для меня многие двери открылись. Вам нужно хорошо понимать как работает эта конструкция. Она может быть как очень простой, так и очень сложной. Количество условий может быть достаточно большим.

Вы можете использовать отдельно условие if от else, а отдельно else использовать нельзя, будет ошибка. Можно сделать условие, которое срабатывает по точным значениям, а можете сделать условие, которое зависит от диапазона значений. Возможности условные операторы if-else превосходят switch-case.

Switch-case работает только с одним условием. Простой пример.

$a = 1;
$a = null;
if($a == 1) echo 'у переменной есть значение 1';
if($a == null) echo 'у переменной нет значения';

Если вы поставите у переменной $a значение 1, то сработает первое условие. Если $a == null, то сработает второе условие. Обратите внимание, что 2 условия не зависят друг от друга.

Важно

Теперь покажу вам как работать с диапазоном значений. Представьте себе задачу в которой есть небольшой товар. Если его стоимость превышает 100 рублей, то будем его считать очень дорогим товаром.

$size = 10;
if($size < 100 && $size >= 80) echo 'дорогой товар';
elseif($size < 100 && $size >= 40) echo 'недорогой товар';
elseif($size < 100 && $size >= 0) echo 'дешёвый товар';
else echo 'очень дорогой товар';

Поменяйте значения у переменной и вы увидите как работает скрипт. Получается 4 условия (3 + 1). Если первые три условия не сработает, то последнее условие сработает в любом случае.

Обратите внимание, что за if следует elseif и замыкает конструкцию блок else. Если вы расположите раньше if, то будет ошибка.

Знак && означает добавление следующего условия (и), а знак || означает альтернативное выполнение следующего условия. Если первое условие не сработало, то второе может сработать.

В функциях часто применяют различные условия. Допустим вас не устраивает результат работы функции и вам нужно этот момент отследить. Тут трудно обойтись без if-else. Вам поможет слово return. Оно возвращает какое-то значение или просто выходит из функции. В этом случае функция не сработает.

$str = 'некий текст с определённой длинной символов';
//countLength() — функция для подсчёта длины строки
function countLength($str)
{ if(is_string($str) == FALSE) return FALSE; if(strlen($str) > 0) { return strlen($str); }
}
echo countLength($str);
//81 — длина строки

просмотры: 2573, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-07-12 23:06:00

Источник: http://trainingweb.ru/page/if-else-php

Условные операторы: (if), (?:)

Условный оператор if (в переводе с англ. — «если») реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true.

Синтаксис:

if (условие) однострочная инструкция; или if (условие) { блочная инструкция }

Условие в этой конструкции может быть любым выражением. JavaScript автоматически преобразует результат выра­жения в логическое значение, вызывая для него функцию Boolean(). Если условие эквивалентно true, выполняется инструкция, в противном случае – нет.

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

Используйте конструкцию if….else для выполнения первой инструкции, если условие истинно true, и второй инструкции, если условие ложно false.

Синтаксис:

if (условие) { инструкция 1 } else { инструкция 2 }

Совет

Следующий пример выведет соответствующее окно приветствия в зависимости от текущего времени в вашем браузере:

Инструкция else if используется в случае, если требуется выполнить один из многих фрагментов кода. Формально это не JavaScript-инструкция, а лишь распространенный стиль программирования, который заключается в применении повторяющихся инструкций if/else:

if (n == 1) { инструкция 1 } else if (n == 2) { инструкция 2 } else if (n == 3) { инструкция 3 } else { // Если все остальные условия else не выполняются, исполняем инструкцию 4 }

Приведенный выше код – это всего лишь последователь­ность инструкций if. Каждая следующая if является частью else предыдущей инструкции if. Запись else if более удобная, чем ее синтаксически эквивалентная форма, показывающая вложенность инструкций if:

if (n == 1) { инструкция 1 } else { if (n == 2) { инструкция 2 } else { if (n == 3) { инструкция 3 } else { // Если все остальные условия else не выполняются, исполняем инструкцию 4 } } }

В следующем примере, благодаря применению конструкции else if, будет выведено одно из четырех окон приветствия в зависимости от времени суток:

Условный оператор (?:) – это единственный тернарный (от лат. ternarius — «тройной») оператор с тремя операндами в JavaScript. Тернарный оператор возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.

https://www.youtube.com/watch?v=yzA0Ofbmc2I

Первый операнд используется в качестве условия, он вычисляется и преобразуется, при необходимо, в булево значение. Если условие верно true, то вычисляется и возвращается значение1. Если условие неверно false, то вычисляется и возвращается значение2:

условие ? значение1 : значение2

Например:

Читается этот код так: если а больше b, то c = a, иначе c = b.

Можно записать тоже самое через if/else:

Вложенные инструкции if/else, так же можно заменить последовательностью из тернарных операторов:

Условный оператор ?: имеет ассоциативность справа налево, поэтому следующие две инструкции эквивалентны:

z = a?b:c?d:e?f:g; z = a?b:(c?d:(e?f:g)); Есть и другой вариант сокращенной записи инструкции if/else, основанный использовании лигического И &&. Вспом­ните, что оператор && вычисляет второй операнд только при условии, если результат вычисления первого операнда – истина true. В программировании данный процесс называют непол­ным вычислением, поскольку, если в логическом И && первый операнд возвращает false, то общий результат тоже будет false. Поэтому вычисление и преобразование второго операнда, в этом случае, не выполняется.

Читайте также:  Как правильно сделать страницу 404 ошибки

В предыдущем примере оператор && снача­ла проверяет выполняется ли временное условие (чему равна переменная time). Если условие выполняется, то в переменную message будет записа­на соответствующая строка приветствия.

В противном случае, в силу побочного эффекта, связанного с неполным вычислением, оператор && выведет false и т.д.

Этот метод используется не очень часто, но если вам встретится нечто подобное, то вы теперь знаете, как работают подобные инструкции.

Источник: http://wm-school.ru/js/js_if_else.php

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

  • PHP и MySQL
  • Основы PHP
  • Условные операторы

Внимание! Данный урок устарел!
Переходите к новому уроку «Условия в PHP».

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

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

Обратите внимание

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

Прежде чем изучить эти операторы нужно разобраться в логических выражениях и операциях.

Логические операции

Логические операции позволяют комбинировать логические значения (называемые также истинностными) для получения новых логических значений. Как показано в таблице ниже, в языке PHP поддерживаются стандартные логические операции (and, or, not и xor), причем первые две имеют альтернативные версии.

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

ОперацияОписание
and Операция, результат которой принимает истинное значение тогда и только тогда, когда оба ее операнда имеют истинное значение
or Операция, результат которой принимает истинное значение, если один из ее операндов (или оба операнда) имеет истинное значение
! Операция, результат которой принимает истинное значение, если ее единственный операнд (задаваемый справа от знака операции) имеет ложное значение, и ложное значение, если операнд имеет истинное значение
xor Операция, результат которой принимает истинное значение, если любой из ее операндов (но не оба одновременно) имеет истинное значение
&& То же, что и операция and, но связывает свои операнды сильнее по сравнению с этой операцией
|| То же, что и операция or, но связывает свои операнды сильнее по сравнению с этой операцией

Операции && и || должны быть знакомы программистам, работающим с языком C. Операцию ! обычно называют not, поскольку она становится отрицанием для того операнда, к которому применяется.

Чтобы проверить, имеют ли оба операнда значение TRUE, следует использовать оператор AND, который можно записать и как двойной амперсанд (&&).

Оба оператора, AND и &&, являются логическими, их единственное отличие в том, что оператор && имеет более высокий приоритет, чем оператор AND. То же самое относится к операторам OR и ||.

Оператор AND возвращает TRUE, только если оба операнда имеют значение TRUE; в противном случае возвращается значение FALSE.

Чтобы проверить, имеет ли хотя бы один операнд значение TRUE, следует использовать оператор OR, который можно записать и как двойную вертикальную линию (||). Этот оператор возвращает TRUE, если хотя бы один из операндов имеет значение TRUE.

При использовании оператора OR в программе могут появиться трудноуловимые логические ошибки. Если PHP обнаружит, что первый операнд имеет значение TRUE, он не станет вычислять значение второго операнда. Это позволяет экономить время исполнения, но вы должны внимательно следить за тем, чтобы код, от которого зависит корректная работа программы, не был помещен во второй операнд.

Проверить, имеет ли значение TRUE только один из операндов (но не оба сразу), позволяет оператор XOR. Этот оператор возвращает значение TRUE, если один и только один из операндов имеет значение TRUE. Если оба операнда имеют значение TRUE, оператор вернет значение FALSE.

Важно

Инвертировать логическое значение можно с помощью оператора NOT, который часто записывается и в виде восклицательного знака (!). Он возвращает значение TRUE, если операнд имеет значение FALSE, и значение FALSE, если операнд имеет значение TRUE.

В таблице ниже приведены некоторые логические выражения и их результаты:

Логические выражения и их результаты

Пример логического выраженияРезультат
TRUE AND TRUE TRUE
FALSE AND TRUE FALSE
TRUE OR FALSE TRUE
FALSE OR FALSE FALSE
TRUE XOR TRUE FALSE
TRUE XOR FALSE TRUE
!TRUE FALSE
!FALSE TRUE

Операции сравнения

В таблице ниже показаны операции сравнения, которые могут применяться либо с числами, либо со строками:

Операции сравнения

ОперацияНаименованиеОписание
== Равно Операция, результат которой принимает истинное значение, если ее операнды равны друг другу, в противном случае принимает ложное значение
!= Не равно Операция, результат которой принимает ложное значение, если ее операнды равны друг другу, в противном случае принимает истинное значение
Больше Операция, результат которой принимает истинное значение, если левый операнд больше правого, в противном случае принимает ложное значение
= Больше или равно Операция, результат которой принимает истинное значение, если левый операнд больше или равен правому, в противном случае принимает ложное значение
=== Идентично Операция, результат которой принимает истинное значение, если оба операнда равны друг другу и относятся к одному и тому же типу, в противном случае принимает ложное значение

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

Приоритет операций

Безусловно, не следует слишком злоупотреблять стилем программирования, в котором последовательность выполнения операций в основном обусловлена использованием правил приоритета, поскольку код, написанный в таком стиле, является сложным для восприятия теми, кто в дальнейшем будет изучать его, но следует отметить, что операции сравнения имеют более высокий приоритет, чем логические операции. Это означает, что оператор с выражением проверки, подобном приведенному ниже

Код PHP$var1 = 14; $var2 = 15; if (($var1 < $var2) && ($var2 < 20)) echo '$var2 больше $var1 но меньше 20';

можно переписать как

Код PHP… if ($var1 < $var2 && $var2 < 20) ...

Инструкция if позволяет исполнить блок кода, если условное выражение в этой инструкции имеет значение TRUE; в противном случае блок кода не исполняется. В качестве условия может применяться любое выражение, включающее проверки на ненулевое значение, равенство, NULL с участием переменных и значений, возвращаемых функциями.

Не важно, какие отдельные условные выражения составляют условное предложение. Если условие истинно, исполняется программный код, заключенный в фигурные скобки ({}).

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

Синтаксис инструкции if:

if (условное выражение) { блок программного кода; }

Если в результате вычисления условного выражения получается значение TRUE, то блок программного кода, расположенный после него, будет исполнен. В следующем примере если переменная $username имеет значение 'Admin', будет выведено приветственное сообщение. В противном случае ничего не произойдет:

Код PHP$username = «Admin»; if ($username == «Admin») { echo 'Добро пожаловать на страницу администратора.'; }

Если блок программного кода содержит только одну инструкцию, то фигурные скобки необязательны, тем не менее, хорошая привычка – ставить их всегда, поскольку с ними код легче читается и редактируется.

Необязательная инструкция else – это блок программного кода, исполняемый по умолчанию, когда условное выражение возвращает значение FALSE. Инструкцию else нельзя использовать отдельно от инструкции if, поскольку у else нет собственного условного выражения. То есть else и if в вашем коде всегда должны быть вместе:

Инструкции if и else$username = «no admin»; if ($username == «Admin») { echo 'Добро пожаловать на страницу администратора.'; } else { echo 'Добро пожаловать на страницу пользователя.

'; }

Не забывайте закрывать фигурной скобкой блок кода в инструкции if, если вы поставили фигурную скобку в начале блока.

Совет

В блоке else тоже должны быть открывающая и закрывающая фигурные скобки, как в блоке if.

Все это хорошо, кроме случаев, когда вам требуется проверить несколько условий подряд. Для этого подойдет инструкция elseif.

Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else. У каждой инструкции elseif есть собственный блок кода, размещаемый непосредственно после условного выражения инструкции elseif.

Инструкция elseif идет после инструкции if и перед инструкцией else, если таковая имеется.

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

Проверка нескольких условий$username = «Guest»; if ($username == «Admin») { echo 'Добро пожаловать на страницу администратора.'; } elseif ($username == «Guest») { echo 'Просмотр не доступен.

'; } else { echo 'Добро пожаловать на страницу пользователя.'; }

Здесь проверяется два условия, и, в зависимости от значения переменной $username, выполняются разные действия.

И еще есть возможность что-то сделать, если значение переменной отличается от первых двух.

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

Оператор ?: – это тернарный (трехместный) оператор, который принимает три операнда. Он работает аналогично инструкции if, но возвращает значение одного из двух выражений. Выражение, которое будет вычисляться, определяется условным выражением. Двоеточие (:) служит разделителем выражений:

(условие) ? вычислить_если_условие_истинно : вычислить_если_условие_ложно;

В примере ниже проверяется значение, и в зависимости от его значения (TRUE или FALSE) возвращаются разные строки:

Создание сообщения с помощью оператора ?:$logged_in = TRUE; $user = «Игорь»; $banner = (!$logged_in) ? «Зарегистрируйтесь!» : «С возвращением, $user!»; echo $banner;

Вполне очевидно, что приведенный выше оператор эквивалентен следующему оператору:

Обратите внимание

Код PHP$logged_in = TRUE; $user = «Игорь»; if (!$logged_in) { $banner = «Зарегистрируйтесь!»; } else { $banner = «С возвращением, $user!»; } echo $banner;

Инструкция switch сравнивает выражение с несколькими значениями.

Как правило, в качестве выражения используется переменная, в зависимости от значения которой должен быть исполнен тот или иной блок кода. Например, представим себе переменную $action, которая может иметь значения «ADD» (добавить), «MODIFY» (изменить) и «DELETE» (удалить).

Инструкция switch позволяет легко определить блок кода, который должен исполняться для каждого из этих значений.

Чтобы показать разницу между инструкциями if и switch, выполним проверку переменной на соответствие нескольким значениям. В примере ниже приведен программный код, реализующий такую проверку на базе инструкции if, а в последующем примере – на базе инструкции switch:

Проверка на соответствие одному из нескольких значений (инструкция if)if ($action == «ADD») { echo «Выполнить добавление.»; echo «Количество инструкций в каждом блоке не ограничено.»; } elseif ($action == «MODIFY») { echo «Выполнить изменение.»; } elseif ($action == «DELETE») { echo «Выполнить удаление.

«; }Проверка на соответствие одному из нескольких значений (инструкция switch)switch ($action) { case «ADD»: echo «Выполнить добавление.»; echo «Количество инструкций в каждом блоке не ограничено.»; break; case «MODIFY»: echo «Выполнить изменение.»; break; case «DELETE»: echo «Выполнить удаление.

Читайте также:  Редирект 301 с http на https

«; break; }

Инструкция switch берет значение, стоящее рядом с ключевым словом switch, и начинает сравнивать его со всеми значениями, стоящими рядом с ключевыми словами case, в порядке их расположения в программе. Если соответствие не найдено, не исполняется ни один из блоков.

Как только совпадение обнаружено, выполняется соответствующий блок кода. Расположенные ниже блоки кода также исполняются – до конца инструкции switch или до ключевого слова break. Это удобно для организации процесса, состоящего из нескольких последовательных шагов.

Если пользователь уже проделал некоторые шаги, он сможет продолжить процесс с того места, на котором прервался.

Выражение рядом с инструкцией switch должно возвращать значение элементарного типа, например число или строку. Массив можно задействовать только в виде его отдельного элемента, имеющего значение элементарного типа.

Выбор по умолчанию

Если значение условного выражения не совпало ни с одним из предложенных в инструкциях case вариантов, инструкция switch и в этом случае позволяет что-то сделать, примерно как инструкция else конструкции if, elseif, else. Для этого нужно последним вариантом в списке выбора сделать инструкцию default:

Создание сообщения об ошибке с помощью инструкции default$action = «REMOVE»; switch ($action) { case «ADD»: echo «Выполнить добавление.»; echo «Количество инструкций в каждом блоке не ограничено.»; break; case «MODIFY»: echo «Выполнить изменение.»; break; case «DELETE»: echo «Выполнить удаление.

«; break; default: echo «Ошибка: команда $action не допустима, «. «можно использовать только команды ADD, MODIFY и DELETE.

«; }

Кроме обычного, инструкция switch поддерживает альтернативный синтаксис – конструкцию из ключевых слов switch/endswitch, определяющих начало и конец инструкции вместо фигурных скобок:

Инструкция switch завершается ключевым словом endswitchswitch ($action): case «ADD»: echo «Выполнить добавление.»; echo «Количество инструкций в каждом блоке не ограничено.»; break; case «MODIFY»: echo «Выполнить изменение.»; break; case «DELETE»: echo «Выполнить удаление.

«; break; default: echo «Ошибка: команда $action не допустима, «. «можно использовать только команды ADD, MODIFY и DELETE.

«; endswitch;

Если должен быть исполнен только блок кода, соответствующий определенному значению, то в конце этого блока следует вставить ключевое слово break. Интерпретатор PHP, встретив ключевое слово break, перейдет к исполнению строки, расположенной после закрывающей фигурной скобки инструкции switch (или ключевого слова endswitch). Но если не использовать инструкцию break то проверка продолжается в последующих ветвях case конструкции switch.

Ниже показан пример:

Важно

Что происходит при отсутствии операторов break$action=»ASSEMBLE ORDER»; switch ($action) { case «ASSEMBLE ORDER»: echo «Собрать заказ.
«; case «PACKAGE»: echo «Упаковать.
«; case «SHIP»: echo «Доставить заказчику.
«; }

Если переменная $action будет иметь значение «ASSEMBLE ORDER», результат работы этого фрагмента будет следующим:

Собрать заказ. Упаковать. Доставить заказчику.

Если предположить, что стадия сборки уже была пройдена, и переменная $action имеет значение «PACKAGE», то будет получен следующий результат:

Упаковать. Доставить заказчику.

Иногда, отсутствие операторов break бывает полезным, как в приведенном примере, где формируются стадии заказа, но в большинстве случаев следует использовать этот оператор.

Типы данных Циклы

Источник: http://addphp.ru/materials/base/1_6.php

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

В этой главе:

  • Условный оператор if
  • Оператор if else
  • Конструкция elseif/else if
  • Тернарный оператор — ? :

Условный оператор позволяет пропустить или выполнить некоторый блок кода в зависимости от результата вычисления указанного выражения — условия. Можно сказать, что условный оператор является точкой принятия решения в программе, иногда его также называют оператор ветвления.

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

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

Оператор if является наиболее простым из операторов ветвлений.

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

Оператор if сначала вычисляет условное выражение указанное в круглых скобках, результатом этого выражения является булево значение. Если полученный результат является истинным (true), то инструкция выполняется.

Если выражение возвращает ложное значение (false), то инструкция не выполняется. В качестве условия может применяться выражение любой сложности.

Информацию о том, какие значения преобразуются в значение FALSE, можно посмотреть в главе про 'Логический тип данных'.

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

Следующий код демонстрирует применение оператора if:

1234567891011121314151617

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

12345678910111213

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

Оператор if else

И так мы узнали, что оператор if позволяет выполнять инструкции в том случае, если условие истинно. Если же условие оказывается ложно, то никаких действий не выполняется.

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

Оно состоит из оператора if, за которым следует блок инструкций и ключевого слова else, за которым следует другой блок инструкций.

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

Обратите внимание
Совет

Оператор else не является обязательным. Блок инструкций расположенный после else выполняется по умолчанию, т.е. когда условное выражение в if возвращает значение false. Оператор else не может быть использован отдельно от оператора if. Блок else должен располагаться только после оператора if, его можно рассматривать, как действие по умолчанию.

[/su_box]

Немного изменив наш предыдущий пример, мы можем увидеть, как работает оператор if else, если условие возвращает значение false:

123456789101112

Оператор if else может быть вложенным. Такие вложенные условные операторы встречаются на практике достаточно часто. Оператор if является вложенным, если он расположен внутри другого блока if или else. Если в коде используется несколько операторов if подряд, то else всегда относится к ближайшему if:

12345678910

Последний else не относится к if($a), так как он находится не во внутреннем блоке, поэтому ближайший к нему получается if($i). Оператор else расположенный внутри блока относится к if($b), потому что этот if — является ближайшим к нему.

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

Оператор if/else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется выполнить один из многих фрагментов? Если вам нужно проверить несколько условий подряд, то для этого подойдет конструкция elseif или else if (это одна и та же конструкция, просто по разному записана).

Формально она не является самостоятельной конструкцией PHP; это лишь распространенный стиль программирования, заключающийся в применении повторяющихся операторов if/else. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.

Конструкция elseif/else if должна располагаться после оператора if и перед оператором else, если такой имеется.

123456789101112131415161718

Здесь проверяется три условия, и, в зависимости от значения переменной $username, выполняются разные действия.

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

12345678910111213141516171819202122

Тернарный оператор — ? :

В этом разделе пойдет разговор об операторе, выполняющем несколько нетипичные действия.

Существует распространенная в программировании ситуация, когда в случае выполнения некоторого условия переменной необходимо присвоить одно значение и в случае невыполнения этого условия другое значение.

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

12345678

На практике подобные действия оказались настолько распространенными, что был разработан специальный условный оператор, выполняющий данные действия — сокращенный способ присваивания значения переменной на основе выполнения того или иного условия.

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

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

12345

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

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

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

Обратите внимание

Если условие возвращает false, переменной присваивается значение выражения, находящегося справа от двоеточия (в данном случае выражение2).

Скобки вокруг условного выражения не обязательны, но их довольно часто употребляют для более легкого визуального восприятия тернарного оператора. Тернарные выражения вычисляются слева направо.

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

12345678910111213141516171819202122232425262728

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

Читайте также:  Что такое alexa rank

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

1234567

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

Источник: http://laptev-alex.ru/index.php/php-uslovnyj-operator-if-else

PHP — условный оператор if

Условный оператор в программировании позволяет выполнять определенные действия в зависимости от истинности или ложности заданного выражения.

Общая структура выглядит следующим образом:

Попробуем разобрать этот код на отдельные части.

Итак, вначале указывается ключевое слово if, что в переводе с английского означает «Если». Затем в круглых скобках указывается условие. В данном случае сравниваются два числа. После условия прописывается определенное действие.

В нашем случае в переменную $max заносится максимальное значение (переменная $b).

Если нужно выполнить какое-либо действие в других случаях, когда условие неверно, можно поставить ключевое слово else, что в переводе с английского означает «Иначе», «В других случаях», «В противном случае» и т.д.

Открывающаяся фигурная скобка { обозначает начало участка кода, а закрывающаяся }, соответственно, конец участка кода. Таким образом можно для одного условия указать несколько действий. По сути, эти фигурные скобки группируют записанные между ними действия.

Если при условии выполняется только одно действие, фигурные скобки можно опустить. Тогда описанный выше код можно записать следующим образом:

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

Для сравнения можно использовать следующие знаки:

  • = — больше, либо равно
  • != — не равно
  • !== — точное неравенство

Получается, если при сравнении воспользоваться одним знаком равенства ($a=$b), то первая переменная присвоит значение второй переменной.

Если воспользоваться двумя знаками равенства ($a==$b), то мы проверяем только значения, чтобы они были равны. Однако, если логическое отрицание сравнить с нулем (false==0), то это равенство тоже выполнится, так как язык PHP не является строгим, и он преобразует логический тип в числовой.

Если воспользоваться тремя знаками равенства ($a===$b), то мы проверяем значения и тип переменных, чтобы они были равны. Таким образом, если снова логическое отрицание сравнить с нулем (false===0), то это равенство уже не выполнится.

Важно

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

Получается, если условие верно — выводится 1, если не верно — ничего не выводится.

Можно даже сравнить с электроникой. Электрический сигнал или есть, или его нет. Обычно он обозначается 0 или 1.

Чтобы и нам явно отобразить 0 или 1, достаточно перед результатом указать тип (int):

Однако в условиях истинность утверждения определяется с помощью true и false (что в переводе означает «истина» и «ложь» или «верно» и «неверно» и т.д.):

Конечно, добавление true в этом примере — это уже лишнее, однако иногда оно очень сильно пригождается.

Любое отрицание можно указать с помощью восклицательного знака (!).

В следующей статье мы изучим операторы повтора — циклы for, while и do-while.

Источник: http://fortran-new.ru/sozdanie-sajta/php-uslovnyj-operator-if/

     
         
          Кнопка
         
     

Для атрибута method в теге form мы поставили значение POST.

Это означает, что данные формы будут отправляться методом POST. Подробнее о методах передачи данных мы поговорим в следующих уроках.

Что такое action тоже пока не заморачивайтесь.

Если мы откроем index.php через Open Server, то у нас появится  просто  кнопка, но пока не работающая.

Ну а теперь пишем сам сценарий.

Совет

Допустим, мы хотим, чтобы при нажатии на кнопку появлялась фраза «Вы нажали на кнопку».

Логически это будет выглядеть так:

Если (кнопка нажата){
Выводим фразу «Вы нажали на кнопку»;
}

Приблизим выражение к языку PHP, используя условные операторы:

А теперь под HTML пишем сам код PHP:

Если этот код перевести с языка PHP на русский, то это будет выглядеть вот так:

Если (установлен (метод  формы POST [кнопки с именем ‘but’])){
   Выводится фраза «Вы нажали на кнопку»;
}

А если совсем по-русски, то

Если данные формы были отправлены методом POST при нажатии на кнопку с именем but,
то пользователь увидит фразу «Вы нажали на кнопку».

Примерно так должен мыслить программист при написании сценария.

!!!Будьте внимательны, все кавычки и скобки должны быть закрыты.

Пишем сценарий для двух кнопок

Сценарий будет такой:

Если мы нажимаем кнопку1, То мы видим сообщение «Вы нажали кнопку1». Или же, если мы нажали на кнопку2,

То мы увидим сообщение «Вы нажали на кнопку2».

     
     
         
          Кнопка1
          Кнопка2
         
     

С кнопками я думаю вы разобрались. Так можно написать сценарии и для трёх кнопок и для 10-ти…

Пишем сценарий приветствия по имени

Сценарий таков: пользователь вводит своё имя в окошко, и при нажатии на кнопку, появляется фраза приветствия.

Итак, сначала пишем HTML форму.

     
     
         
         

Ваше имя<\p>
         
         
     

Сначала мы должны создать переменную $name, в неё мы поместим имя, которое введёт пользователь.

А затем под формой HTML мы напишем уже знакомую нам конструкцию, используя условный оператор if:

Пишем простейший сценарий авторизации

Допустим, у нас есть всего два пользователя: Вася и Петя. Остальных пользователей система не знает.

Если мы введём имя Вася, то появится фраза «Привет Вася». Или же, если мы введём имя Петя, то появится фраза «Привет Петя». Иначе, если мы ничего не введём, или введём другое имя,

то появится фраза «Привет гость».

     
     
         
         

Ваше имя<\p>
         
         
     

Ну и напоследок, заодно вспомните предыдущий урок:

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

     
     
         
     

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

Источник: http://www.fly-webmaster.ru/uslovnye-operatory-php.html

Урок 8. PHP — Условный оператор

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

Подумайте о том решении, которое вы принимаете перед тем, как идти спать.

Если у вас есть чем заняться на следующий день, скажем, пойти на работу, в школу или университет, то вам нужно завести будильник, чтобы рано проснуться. В противном случае, вы будете спать столько, сколько хотите!

Этот простой вид условия «если, то», который является очень распространенным явлением в повседневной жизни, а также довольно часто появляется в программировании. Всякий раз, когда вы хотите, чтобы решение принималось с учетом каких-то условий (например, вы должны что-то сделать завтра) вы используете условный оператор.

PHP оператор If

Представьте себе, что 1 января вы хотите вывести сообщение «С Новым годом!» в верхней части вашей страницы. С помощью PHP и условного оператора вы могли бы этот процесс автоматизировать за несколько месяцев до 1 января.
Такую динамичность невозможно осуществить на простом HTML.

PHP If Пример

Давайте начнем с основ и рассмотрим простой пример, где мы присвоим переменной значение, а затем, с помощью условия в php мы сравним его с другим значением и выведем результат.

$my_name = «Вася»; if ( $my_name == «Вася» ) { echo «Привет, Вася!
«; } echo «Добро пожаловать на мою страницу!»;

В результате мы увидим две строки:

Привет, Вася! Добро пожаловать на мою страницу!

Как вы видите, мы сравнивали переменную $my_name со значением «Вася», чтобы увидеть равны ли они. В PHP вы используете двойной знак равенства (==) для сравнения значений. Кроме того, обратите внимание, так как условие оказалось истиной, то кода был выполнен, напечатав «Привет, Вася!». Давайте немного более глубоко разберемся в этом примере.

  • Сначала мы присваиваем переменной $my_name значение «Вася».
  • Затем мы использовали оператор IF для проверки значения, содержащегося в переменной $my_name. Равно ли оно значению «Вася»?
  • Сравнение между $my_name и «Вася» было сделано с помощью двойного знака равенства «==», ни одного равно «=»! Одно равно используется для присвоения значения переменной, в то время как двойное равно для проверки.
  • $my_name действительно равна «Вася», так что echo выполняется.

If…else

С простым условием разобрались. Но иногда возникает необходимость выполнить условие, если оно истинно и выполнить другое действие, если ложно! Например, если я завтра иду в университет, то мне нужно встать в 7 часов, иначе я пойду играть в футбол с друзьями с 9 часов. Здесь нам на помощь придет все тот же условный оператор, но с небольшим дополнением.

$go_to_universe = 1; if ( $go_to_universe == 1 ) { echo «Иду в универ, будильник на 7 часов»; } else { echo «Не иду в универ, будильник на 9 часов»; }

В данном случае, если переменная $go_to_universe принимает значение 1, то мы идем в универ и заводим будильник на 7 утра, иначе (else) не идем в универ и заводим на 9. Все достаточно просто.

Запомните, сначала пишем оператор if, затем в круглых скобках условие, в фигурных скобках действие, если условие истинно, затем слово else и снова в фигурных скобках действие, но уже которое будет выполняться, если усновие ложно.

if ( условие ) { действие при истинном условии; } else { действие при ложном условии; }

Разобрались? тогда двигаемся дальше!

← Include | Содержание | Switch →

Источник: https://myblaze.ru/urok-8-php-uslovnyiy-operator/

Ссылка на основную публикацию