Содержание

PHP: elseif/else if — Manual

Change language: EnglishBrazilian PortugueseChinese (Simplified)FrenchGermanJapaneseRomanianRussianSpanishTurkishOther

elseif/else if

(PHP 4, PHP 5, PHP 7)

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b или a меньше, чем b:

<?php
if ($a > $b) {
    echo "a больше, чем b";
} elseif ($a == $b) {
    echo "a равен b";
} else {
    echo "a меньше, чем b";
}
?>

Может быть несколько elseif в одном if выражении. Первое же выражение

elseif (если будет хоть одно) равное TRUE будет выполнено. В PHP вы также можете написать ‘else if’ (в два слова), и тогда поведение будет идентичным ‘elseif’ (в одно слово). Синтаксически значение немного отличается (если Вы знакомы с языком С, это тоже самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны FALSE, а текущий elseif равен TRUE.

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

if/elseif, Вы не должны разделять else if в два слова, иначе это вызовет фатальную ошибку в PHP.

<?php/* Некорректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
    echo "Строка выше вызывает фатальную ошибку.";
endif;/* Корректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
    echo $a." равно ".$b;
else:
    echo $a." не больше и не равно ".$b;
endif;?>
Vladimir Kornea

14 years ago

The parser doesn't handle mixing alternative if syntaxes as reasonably as possible.

The following is illegal (as it should be):

<?
if($a):

    echo $a;
else {
    echo $c;
}
?>

This is also illegal (as it should be):

<?
if($a) {
    echo $a;
}
else:
    echo $c;
endif;
?>

But since the two alternative if syntaxes are not interchangeable, it's reasonable to expect that the parser wouldn't try matching else statements using one style to if statement using the alternative style. In other words, one would expect that this would work:

<?
if($a):
    echo $a;
    if($b) {
      echo $b;
    }
else:
    echo $c;
endif;
?>

Instead of concluding that the else statement was intended to match the if($b) statement (and erroring out), the parser could match the else statement to the if($a) statement, which shares its syntax.

While it's understandable that the PHP developers don't consider this a bug, or don't consider it a bug worth their time, jsimlo was right to point out that mixing alternative if syntaxes might lead to unexpected results.

qualitycoder

6 years ago

The reason 'else if' (with a space) works with traditional syntax and not colon syntax is because of a technicality.

<?php
  if($var == 'Whatever') {

  } else if(

$var == 'Something Else') {

  }

?>

In this instance, the 'else if' is a shorthand/inline else statement (no curly braces) with the if statement as a body. It is the same things as:

<?php
  if($var == 'Whatever') {

  } else {
      if($var == 'Something Else') {

      }
  }
?>

If you were to write this with colon syntax, it would be:

<?php
  if($var == 'Whatever'):

  else:
      if($var == 'Something Else'):

      endif;
  endif;
?>

Anonymous

4 years ago

If you find yourself using a lot of "elseif"s like this

<?php
if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} elseif (...) {
    echo "...";
} elseif (...) {
    echo "...";
} elseif (...) {
    echo "";
} elseif (...) {
    echo "";
} else {
    echo "a is smaller than b";
}
?>

then you should look at using switch instead:
http://php.net/manual/en/control-structures.switch.php

r

4 years ago

<?php
if(true) {
  echo 'true';  } else {
  echo 'false';
}

if(

false) {
  echo 'true';
} else {
  echo 'false';  }
?>
peter dot mlich at volny dot cz

6 years ago

To  Rudi / 3 years ago

Try switch in switch($name) case 'word': break; . --- slow
Try if/else and  if/elseif in $name='word'. --- in my fast test, place 3
Try isset in isset($array[$name]). ---  place 1
Try in_array in in_array($name,$array). --- slow
Try array_key_exists in array_key_exists($name,$array).

Try return (end function) in if/elseif with  -- place 2
if('word'==$name) {
  $parsed[$name]=$text;
  return;
  } 
elseif('word'==$name) {
  $parsed[$name]=$text;
  return;

PHP 5. 35, xml_parse function, i parsed 9.2MB xml file to sql, script in place 1 do it at 11.54s (do more than only condition)

Принятие решений в Вашем коде — условные конструкции — Изучение веб-разработки

Во многих языках программирования код должен иметь возможность принимать решения на основе введенных пользователем данных. Например, в игре, если у пользователя осталось 0 жизней, то игра завершается. В приложении о погоде утром отображается восход солнца, а вечером звезды и луна. В этой статье мы рассмотрим как в  JavaScript работают так называемые «условия».

Необходимое условие: Базовая компьютерная грамотность, базовое понимание HTML и CSS, JavaScript first steps.
Цель: Понять принципы использования операторов условий в JavaScript.

Люди (и животные) принимают какие-либо решения всю жизнь, от малозначимых («стоит ли мне съесть одну печеньку или две?») до жизнеопределяющих («стоит ли мне остаться дома и работать на ферме отца или переехать в другую страну и изучать астрофизику?»)

Операторы условия в JavaScript позволяют нам указать разного рода действия в зависимости от выбранного пользователем или системой ответа (например одна печенька или две) и связать его с действием (результатом), например, результатом «съесть одну печеньку» будет «все еще буду чувствовать себя голодным», а результатом «съесть две печеньки» будет «буду чувствовать себя сытым, но мама меня нарушает за то, что я съел все сладости». 

Давайте глянем на наиболее распространенный тип условного оператора, который вы будете использовать в JavaScript — if ... else оператор.

Базовый if … else синтаксис

Базовый if...else синтаксис выглядит как pseudocode:

if (condition) {
  code to run if condition is true
} else {
  run some other code instead
}

Что мы имеем:

  1. Ключевое слово if расположено перед круглыми скобками.
  2. Условие для проверки (condition), расположено внутри круглых скобок (например «это значение больше другого значения?», или «это значение существует?»). Это условие использует операторы сравнения (comparison operators), которые мы изучим позже, и возвратит нам true или false.
  3. Внутри скобок { } расположен код, который будет выполняться только в том случае, если условие (condition) верно (true).
  4. Ключевое слово else (иначе).
  5. Еще скобки { }, код внутри которых выполнится, только если условие не верно (не 
    true)
    .

Этот код довольно читабелен — он говорит «if (если)  condition (условие) возвращает true (истина), запусти код A, else (иначе) запусти B»

Стоит заметить, что  else и второй блок скобок { } не обязателен — следующий код так же будет работать:

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

какой-то другой код

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

И, наконец, иногда вы можете встретить код if...else без фигурных скобок в сокращенной форме:

if (condition) code to run if condition is true
else run some other code instead

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

Реальный пример

Чтобы лучше понять синтаксис, давайте рассмотрим реальный пример. Представьте, что мать или отец попросили помочь с работой по дому своего ребенка.  Родитель может сказать: «Если ты поможешь мне с покупками, то я дам тебе дополнительные деньги на карманные расходы, которые ты сможешь потратить на игрушку, какую захочешь».   В JavaScript, мы можем представить это так: 

var shoppingDone = false;

if (shoppingDone === true) {
  var childsAllowance = 10;
} else {
  var childsAllowance = 5;
}

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

shoppingDone значение  true , если ребенок помог с покупками.

else if

В предыдущем примере предоставлено два выбора, или результата — но что, если мы хотим больше, чем два?

Существует способ привязать дополнительные варианты/результаты к вашему if...else — использоватьelse if. Для каждого дополнительного выбора требуется дополнительный блок, который нужно расположить между if() { ... } и else { ... } — проверьте следующий более сложный пример, который может быть частью простого приложения прогноза погоды:

<label for="weather">Выберите тип погоды сегодня: </label>
<select>
  <option value="">--Сделайте выбор--</option>
  <option value="sunny">Солнечно</option>
  <option value="rainy">Дождливо</option>
  <option value="snowing">Снежно</option>
  <option value="overcast">Облачно</option>
</select>

<p></p>
var select = document.querySelector('select');
var para = document.querySelector('p');

select.addEventListener('change', setWeather);

function setWeather() {
  var choice = select.value;

  if (choice === 'sunny') {
    para.textContent = 'Сегодня хорошо и солнечно. Носите шорты! Идите на пляж, или в парк, и купите мороженое.';
  } else if (choice === 'rainy') {
    para.textContent = 'Дождь падает за окном; возьмите плащ и зонт, и не находитесь слишком долго на улице.';
  } else if (choice === 'snowing') {
    para. textContent = 'Снег падает - морозно! Лучше всего посидеть с чашкой горячего шоколада или слепить снеговика.';
  } else if (choice === 'overcast') {
    para.textContent = 'Дождя нет, но небо серое и мрачное; он все может измениться в любую минуту, поэтому на всякий случай возьмите дождевик.';
  } else {
    para.textContent = '';
  }
}

  1. Здесь у нас есть элемент HTML <select> который позволяет нам выбирать разные варианты погоды и простой абзац.
  2. В JavaScript, мы создаем ссылки на элементы <select> и <p>, и добавляем обработчик события для элемента <select> , чтобы при изменении его значения, запускалась функция setWeather().
  3. Когда функция будет запущена, первоначально мы определим значение переменной choice, которая равна выбранному значению в элементе  <select>. Затем мы используем условный оператор для отображения текста внутри абзаца в зависимости от того, какое значение у переменной  choice. Обратите внимание, как все условия проверяются в else if() {...} блоках, за исключением первого, который использует if() {...}блок.
  4. Последний выбор, внутри  else {...} блока, в основном является «последним средством» — код внутри него будет запущен, если ни одно из условий не будет true. В этом случае он служит для удаления текста из абзаца, если ничего не выбрано, например, если пользователь решает повторно выбрать опцию «—Сделайте выбор—» которая указана в начале.

Примечание об операторах сравнения

Операторы сравнения используют для проверки условий внутри наших условных операторов. Сначала мы посмотрели на операторы сравнения в  нашей статье Базовая математика в JavaScript — цифры и операторы . Наш выбор это:

  • === и !== — проверяет одно значение идентично или не идентично другому.
  • < и > — проверяет одно значение меньше или больше, чем другое.
  • <= и >= — проверяет одно значение меньше или равно, либо больше или равно другому.

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

Мы хотели бы особо обратить внимание на проверку булевых значений (true/false),  и общий шаблон, который вы будете встречать снова и снова. Любое значение, которое не есть  false, undefined, null, 0, NaN, или пустая строка ('') фактически возвращает true при тестировании как условного оператора. Поэтому вы можете просто использовать имя собственной переменной, чтобы проверить, равна ли она true, или существует (т. е. переменная не равна undefined). Например:

var cheese = 'Cheddar';

if (cheese) {
  console.log('Ура! Есть сыр для приготовления бутерброда.');
} else {
  console.log('Сегодня нет сыра для бутерброда.');
}

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

var shoppingDone = false;

if (shoppingDone) { 
  var childsAllowance = 10;
} else {
  var childsAllowance = 5;
}

Вложенность if … else

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

if (choice === 'sunny') {
  if (temperature < 86) {
    para.textContent = 'Сейчас ' + temperature + ' градусов по фаренгейту — хорошо и солнечно. Идите на пляж, или в парк, и купите мороженое.';
  } else if (temperature >= 86) {
    para.textContent = 'Сейчас ' + temperature + ' градусов по фаренгейту — Жара! Если вы хотите выйти на улицу, обязательно используйте солнцезащитный крем. ';
  }
}

Несмотря на то, что весь код работает вместе, каждый условный оператор if...else работает полностью отдельно от другого.

Логические операторы: И, ИЛИ и НЕ

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

  • && — И; позволяет объединить два или более выражения так, что каждое из них отдельно должно иметь значение true , чтобы в итоге общее выражение имело значение true.
  • || — ИЛИ; позволяет объединить два или более выражения так, что одно или несколько из них должно иметь значение true , чтобы в итоге общее выражение имело значениеtrue.

Чтобы дать вам пример оператора И, предыдущий фрагмент кода можно переписать так:

if (choice === 'sunny' && temperature < 86) {
  para.textContent = 'Сейчас ' + temperature + ' градусов по фаренгейту — хорошо и солнечно. Идите на пляж, или в парк, и купите мороженое.';
} else if (choice === 'sunny' && temperature >= 86) {
  para.textContent = 'Сейчас ' + temperature + ' градусов по фаренгейту — Жара! Если вы хотите выйти на улицу, обязательно используйте солнцезащитный крем.';
}

Так, для примера, первый блок кода выполнится только в том случае, если  choice === 'sunny' иtemperature < 86 вернут значение true.

Давайте посмотрим на быстрый пример оператора ИЛИ:

if (iceCreamVanOutside || houseStatus === 'в огне') {
  
  console.log('Вы должны быстро покинуть дом.');
} else {
  console.log('Вероятно, можно в нем оставаться.');
}

Последний тип логического оператора НЕ, выраженный ! оператором, можно использовать для отрицания выражения. Давайте объединим его с ИЛИ в приведенном выше примере:

if (!(iceCreamVanOutside || houseStatus === 'on fire')) {
  console. log('Вероятно, можно в нем оставаться.');
} else {
  console.log('Вы должны быстро покинуть дом.');
}

В этом фрагменте, если условие ИЛИ возвращает true, оператор НЕ будет отрицать это и выражение вернет false.

Можно сочетать любое количество логических операторов, в любой последовательности и в любой комбинации. В следующем примере код в блоке будет выполняться только в том случае, если оба условия с ИЛИ возвращают true, а следовательно, и оператор И возвращает true:

if ((x === 5 || y > 3 || z <= 10) && (loggedIn || userName === 'Steve')) {
  
}

Распространенной ошибкой при использовании логического оператора ИЛИ в условном выражении является указание переменной, значение которой нужно проверить со списком возможных значений этой переменной, разделенных операторами || (ИЛИ). Например.

if (x === 5 || 7 || 10 || 20) {
  
}

В данном примере условие в if(...)  всегда будет оцениваться как true, поскольку 7 (или любое другое ненулевое значение) всегда будет оцениваться как true. Фактически, это условие гласит «если х равен 5, или 7 является true». Но нам требуется совсем не это. Чтобы достичь нужной цели, придется выполнять полноценную проверку после каждого оператора ИЛИ:

if (x === 5 || x === 7 || x === 10 ||x === 20) {
  
}

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

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

switch (выражение) {
  case choice1:
    выполнить этот код
    break;

  case choice2:
    выполнить этот код, а не предыдущий
    break;

  // вариантов может быть любое количество

  default:
    а вообще-то, выполнить только этот код
}

Что мы имеем:

  1. Ключевое слово switch, за которым следует пара круглых скобок.
  2. В скобках приводится выражение или значение.
  3. Ключевое слово case, за которым следует вариант выбора (именно он проверяется на соответствие выражению или значению) и двоеточие.
  4. Код, который будет выполняться, если вариант совпадает с выражением.
  5. Оператор break, за которым следует точка с запятой. Если вариант совпал с выражением или значением, браузер закончит выполнять блок кода, дойдя до оператора break, и перейдет к выполнению кода, расположенного после оператора switch.
  6. Вариантов выбора (пункты 3–5) может быть сколь угодно много.
  7. Ключевое слово default используется точно также, как любой другой вариант выбора (пункты 3–5) за тем исключением, что после default нет других вариантов выбора, поэтому инструкция break не требуется, никакого кода дальше нет. Это вариант выбора по умолчанию, выбираемый, если ни один из других вариантов не совпал с выражением.

Примечание. Вариант выбора default может быть пропущен, если выражение гарантированно совпадет с одним из вариантов выбора. В противном случае вариант default необходим.

Пример оператора switch

Давайте рассмотрим реальный пример — перепишем наше приложение прогноза погоды с использованием оператора switch:

<label for="weather">Выберите тип погоды сегодня: </label>
<select>
  <option value="">--Сделайте выбор--</option>
  <option value="sunny">Солнечно</option>
  <option value="rainy">Дождливо</option>
  <option value="snowing">Снежно</option>
  <option value="overcast">Облачно</option>
</select>

<p></p>
var select = document. querySelector('select');
var para = document.querySelector('p');

select.addEventListener('change', setWeather);


function setWeather() {
  var choice = select.value;

  switch (choice) {
    case 'sunny':
      para.textContent = 'Сегодня хорошо и солнечно. Наденьте шорты! Идите на пляж или в парк, и купите мороженое.';
      break;
    case 'rainy':
      para.textContent = 'На улице дождь. Возьмите плащ и зонт, и не гуляйте слишком долго';
      break;
    case 'snowing':
      para.textContent = 'Идет снег - морозно! Лучше всего посидеть с чашкой горячего шоколада или слепить снеговика.';
      break;
    case 'overcast':
      para.textContent = 'Дождя нет, но небо серое и мрачное; он все может измениться в любую минуту, поэтому на всякий случай возьмите дождевик.';
      break;
    default:
      para.textContent = '';
  }
}

Это последний теоретический раздел данной статьи и мы перейдем к практическим упражнениям. Тернарный или условный оператор имеет простой синтаксис: он проверяет условие и возвращает одно значение или выражение, если условие является true, и другое значение/выражение, если условие является false. Часто это очень удобная альтернатива блоку if...else, позволяющая затрачивать меньшие усилия на написание кода, когда имеется всего лишь два варианта, выбираемых на основе условия true/false. Общая схема оператора:

( условие) ? выполнить этот код : выполнить этот код вместо первого

Приведем простой пример:

var greeting = ( isBirthday ) ? 'С днем рождения, г-н Кузнецов! Хорошо Вам повеселиться!' : 'Доброе утро, г-н Кузнецов.';

У нас есть переменная isBirthday , если она true, мы отправляем посетителю поздравление с днем рождения; если нет – выдаем стандартное приветствие.

Пример тернарного оператора

При использовании тернарного оператора не обязательно ограничиваться лишь значениями переменной, можно выполнять функции или строки кода; все, что угодно. В следующем примере показано простое средство выбора темы, задающее внешний вид веб-сайта с помощью тернарного оператора.

<label for="theme">Выберите тему: </label>
<select>
  <option value="white">Белая</option>
  <option value="black">Черная</option>
</select>

<h2>Это мой веб-сайт</h2>
var select = document.querySelector('select');
var html = document.querySelector('html');
document.body.style.padding = '10px';

function update(bgColor, textColor) {
  html.style.backgroundColor = bgColor;
  html.style.color = textColor;
}

select.onchange = function() {
  ( select.value === 'black' ) ? update('black','white') : update('white','black');
}

Мы используем элемент <select> для выбора темы (черная или белая), а также простой <h2> (en-US) для отображения заголовка веб-сайта. Кроме того, у нас есть функция update(), принимающая в качестве параметров (входных данных) два цвета. В качестве фона используется первый переданный цвет, а в качестве цвета текста – второй переданный цвет.

Наконец, у нас есть слушатель событий onchange , использующийся для запуска функции, содержащей тернарный оператор. Сначала она проверяет условие — select.value === 'black'. Если возвращается true, мы запускаем функцию update() с параметрами черного и белого, в результате чего получаем черный цвет фона и белый цвет текста. Если возвращается false, мы запускаем функцию update() с параметрами белого и черного, в результате чего цвета веб-сайта меняются на противоположные.

В данном примере вы поможете нам закончить простое приложение календаря. Код включает:

  • Элемент <select>, позволяющий пользователю выбирать разные месяцы.
  • Обработчик событий onchange для обнаружения изменения значения, выбранного в меню <select>.
  • Функция createCalendar() , рисующая календарь и отображающая правильный месяц в элементе <h2> (en-US).

Вы должны написать условную конструкцию в функции обработчика onchange , сразу после комментария // ДОБАВЬТЕ СЮДА УСЛОВНОЕ ВЫРАЖЕНИЕ. Конструкция должна:

  1. Проверить выбранный месяц (хранящийся в переменной choice. Это будет значение элемента <select> после изменения значения, например, «Январь».)
  2. Задать переменную, скажем, days, равную количеству дней в выбранном месяце. Для этого нужно будет проверить количество дней в каждом месяце. Високосный год можно не учитывать.

Советы:

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

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

В HTML коде внутри <select> названия месяцев value="" введены на русском языке. Соответственно ссылки на них из вашего скрипта так же на русском. Не забываем про синтаксис. (прим. — ConstantineZz)

В данном примере вы будете использовать пример тернарного оператора, который мы рассматривали ранее, и превратите тернарный оператор в инструкцию switch, что позволит увеличить количество вариантов выбора для простого веб-сайта. Посмотрите на <select> — на этот раз он включает не два, а целых пять вариантов тем. Нужно добавить инструкцию switch сразу под комментарием // ДОБАВЬТЕ ИНСТРУКЦИЮ SWITCH:

  • Она должна принимать переменную choice в качестве входного выражения.
  • Каждый элемент case должен содержать вариант выбора, соответствующий одному из доступных для выбора значений: белая, черная, лиловая, желтая или психоделическая тема.
  • В блоке каждого элемента case необходимо вызывать функцию update(), которой передается два цвета: первый – это цвет фона, а второй – цвет текста. Помните, что значения цветов – это строковые значения, поэтому их нужно заключать в кавычки.

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

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

Уроки PHP — урок 8 — Оператор if

Довольно часто нам в зависимости от обстоятельств приходится принимать различные решения. В программировании как в жизни от условий приходится выбирать что делать. Если в жизни мы принимаем решения подумав головой, то в PHP мы используем оператор IF (если). Если пойдет дождь, я возьму зонт, если будет тепло, мы пойдем на пляж. Так в PHP мы проверяем выражения на истинность и выполняем соответствующие действия:

<?php
if(условие){
  Действие
}
?>

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

 

Давайте разберем на примере конструкцию if:

<?php
if(5>3){
  print '5 больше чем 3';
}
?>

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

Ниже примеры использования операторов сравнения:

Оператор равенства:

<?php
  $x = 5;
  if($x == 5){
    print 'x равен 5';
  }
?>

Оператор не равно:

<?php
$x = 5;
if($x != 4){
  print 'x не равно 4';
}
?>

Оператор больше:

<?php
$x = 6;
if($x > 4){
  print 'x больше 4';
}
?>

Оператор меньше:

<?php
$x = 1;
if($x < 3){
  print 'x меньше 3';
}

Оператор больше или равно:

<?php
$x = 5;
if($x >= 5){
 print 'x больше или равно 5';
}
if($x > 5){
 print 'x больше 5'; //не выводится
}
?>

Оператор меньше или равно:

<?php
$x = 5;
if($x <= 5){
 print 'x меньше или равно 5';
}
if($x < 5){
 print 'x меньше 5'; //не выводится
}
?>

Также можно использовать сразу несколько условий для if. Для этого мы используем логические ИЛИ, И. В PHP оператор ИЛИ обозначается с помощью двух прямых ||, а оператор И с помощью двух амперсандов &&.

Если заданы условия с И, то действие будет выполнено когда оба условия верны. Когда заданы условия с ИЛИ, то действие будет выполнено, когда хотя бы одно из условий верно.

PHP if с использованием && (И):

<?php
$x = 4;
$y = 5;
if($x==4 && $y==5){
  print 'x равен 4, y равен 5';
}

if($x==3 && $y==5){
  print 'x равен 3, y равен 5'; // не выводится, потому что x не равен 3
}
?>

PHP if с использованием || (ИЛИ):

<?php
$x = 4;
$y = 5;
if($x == 4 || $y == 5){
  print 'x равно 4 или y равно 5<br />';
}

if($x == 3 || $y == 5){
  print 'x равно 3 или y равно 5<br />';
}

if($x == 4 || $y == 6){
  print 'x равно 4 или y равно 6<br />';
}

Во всех трех случаях хотя бы одно условие выполняется, поэтому будут выведены все три строки.

 

 

Помните я говорил про тип данных boolean или логический, так вот как раз в условие if можно использовать этот тип данных. if проверяет условие true или false.

Рассмотрите этот пример:

<?php
$condition = true;
if($condition){
  print 'Hello, World!';
}
?>

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

if(5>6){
  print 'пять больше шести';
}else{
  print 'Вы что с ума посходили, где вы это видели?';
}

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

<?php
$x=10;
if(empty($x)){
  print 'переменная пустая';
}else{
  print 'значение переменной ' . $x;
}
?>

Функция empty() проверяет пустая или нет переменная. Если переменная не пустая, то функция возвращает FALSE, а если пустая то возвращает TRUE. Мы можем также использовать оператор отрицания ! (восклицательный знак):

<?php
$x=10;
if(!empty($x)){
  print 'значение переменной ' .  $x;
}else{
  print 'переменная пустая';
}
?>

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

<?php
$x = '';
if(empty($x)){
	print 'переменная x пустая<br />';
}

if(isset($x)){
   print 'переменной x существует'; 
}

?>

Думаю, что для этого урока достаточно примеров и вы уже усвоили как можно применять оператор if. Приступим к следующему.

Bash if несколько условий – Тарифы на сотовую связь