Содержание

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

5 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

7 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)

Уроки 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. Приступим к следующему.

If в php — Seoblog

Условия в php имеют ключевое слово if. И логические операторы OR или ||, AND или &&.

Конструкция условия if следующая:

if (условие) тогда действие;

Рассмотрим пример использования or and в операторе if

<?php
$x = 1;
if (isset($x)) echo «переменная x существует»;

////////////////////////////////////////////////

if (isset($x) && $x == 1 ) echo «<br>x = 1»;

////////////////////////////////////////////////

$x = $x+1;
if (isset($x) and $x == 2 ) echo «<br>x = 2»;

////////////////////////////////////////////////

$x++;
if (isset($x) and $x == 3 && $x != 0) echo «<br>x = 3 and x != 0»;
?>

Итак, мы видим, что в первом случае, есть только одно условие if (isset($x)), другими словами: если переменная $x существует, тогда выводится сообщение echo «переменная x существует»;

Второе условие более сложнее: if (isset($x) && $x == 1 ) — если переменная существует и равна 1, тогда выводим echo «<br>x = 1»; <br> — это перевод строки.

Логический оператор AND выполняет условие только в том случае, если все условия истинные. Если хотя бы одно условие ложно, то все условие ложно. Вот почему оператор AND иногда сравнивается с математическим умножением. 451*6845*655*0 = 0. Какие бы не были числа, но если в выражении есть ноль, то все выражение нулевое.

Третье условие аналогично второму, только вместо логического оператора && используем оператор and. Этим я хотел показать, что логические операторы && и and имеют тот же смысл.

Четвертое условие показывает сложные условия, которые вы можете использовать в своих программах.

$x = $x+1;
$x++;

Две строки выше имеют один и тот же смысл. Они увеличивают переменную на единицу.

Результат работы данного кода будет следующим:

Логический оператор OR отличается от оператора AND тем, что если в условии есть хоть одно истинное условие, то все условие истинно. Вот почему оператор OR иногда сравнивается с математическим сложением. 0+0+0+1 = 1. Если в выражении много нулей, но есть хотя бы одна единица, то все выражение ненулевое.

Пример:

<?php

$x = 1;
$y = 5;

if ($x == 1 or $y ==2) echo «x = 1 or y = 2 хотя на самом деле x = $x,а y = $y»;

if ($x == 1 || $y ==2) echo «<br>x = 1 or y = 2 хотя на самом деле x = $x,а y = $y»;

?>

Мы видим, что на самом деле выполняется только одно условие, второе условие ложно, но благодаря оператору OR все выражение истинно. Также мы видим, что операторы OR и || идентичны.

Результат работы данного кода будет следующим:

life-prog.ru

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

Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:

if (условие){
условие выполнено, делаем так
}
else
{
условие не выполнено, делаем иначе
}

Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.

<?php 
$a = 5;
$b = 25;

// Теперь внимание! Условие: Если $b больше $a
// Знаки > и < , как и в математике, обозначают больше и меньше
if($b > $a)
{
    // если условие выполнено, то выполняем это действие
    echo "$b больше $a";
}
else 
{
    // если не выполнено, то это
       echo "$a больше или равно $b";
}
?> 

Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.

Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.

<?php 
$test = 82; // допустим школьник написал тест на 82 балла

// первое условие напишем для пятёрки
if($test > 90)
{
    // если условие соблюдено, то выполняем это действие.
    echo "Оценка 5";
}
// Знак && обозначает "и, объединение", что условие соблюдено если и то, и то верно
// то есть балл меньше 91 и больше 80, тогда 4. Иначе условия считываются дальше
else if ($test < 91 && $test > 80) 
{
    echo "Оценка 4";
}
else if ($test < 81 && $test > 70) 
{
    echo "Оценка 3";
}
else
{
    echo "Надо бы ещё раз написать тест...";
}
?>


Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.

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

$age = 19; // переменная с возрастом

if ($age > 17){
  echo "Всё! Мне можно делать всё что угодно! Мне уже $age!";
}

Вполне себе милый пример короткой записи условной операции. else писать не обязательно.

Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?

Операторы сравнения в PHP

Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.

Пример        Название            Результат
$a == $b    Равно             True, если $a равно $b
$a === $b   Идентично         True, если $a равно $b и обе переменных принадлежат одному типу
$a != $b    Не равно          True, если $a не равно $b
$a === $b   Не идентично      True, если $a не равно $b и оба их типа не совпадают
$a > $b     Больше чем        True, если $a больше, чем $b
$a < $b     Меньше чем        True, если $a меньше, чем $b
$a >= $b    Больше или равно  True, если $a больше или равно $b
$a <= $b    Меньше или равно  True, если $a меньше или равно $b

Теперь рассмотрим операторы на примерах:

$a = 5;

// вопреки привычке = значит присваивание значение переменной, а == как равно
if ($a == 5){
  echo "$a равно 5"; // выведет "5 равно 5"
} else {
  echo "$a не равно 5";
}

if ($a != 6){
  echo "$a не равно 6"; // выведет "5 не равно 6". Нужно в случае отрицания
} else {
  echo "$a каким-то образом равно 6";
}

// с больше и меньше думаю всё понятно. Поэтому пример сложнее
if ($a <= 6){
  echo "$a меньше или равно 6"; // выведет "5 меньше или равно 6"
} else {
  echo "$a больше 6";
}

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

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

Пример       Название          Результат
$a and $b    Логическое 'и'     TRUE если и $a, и $b TRUE.
$a or $b     Логическое 'или'   TRUE если или $a, или $b TRUE.
$a xor $b    Исключающее 'или'  TRUE если $a, или $b TRUE, но не оба.
! $a         Отрицание          TRUE если $a не TRUE.
$a && $b     Логическое 'и'     TRUE если и $a, и $b TRUE.
$a || $b     Логическое 'или'   TRUE если или $a, или $b TRUE.

Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.

Переходим к примерам

$a = 5;
$b = 6;
$c = 7;

// условие: Если 5 не равно 6 (ВЕРНО)  И  6 не равно 7 (ВЕРНО)
if ($a < 6 && $b != $c){
  echo "Действительно так!"; // выведет "Действительно так!" т.к. ОБА условия ВЕРНЫ
} else {
  echo "Одно из условий не верно";
}

// условие: Если 6 не равно 6 (НЕВЕРНО)  ИЛИ  6 не равно 7 (ВЕРНО)
if ($b != 6 || $b != $c){
  echo "Всё так!"; // выведет "Всё так!", т.к. хотя бы ОДНО из условий ВЕРНО
} else {
  echo "Оба условия не верны";
}

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

К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.

Суть кода: (условие) ? значение a если true : значение a если false

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

<?php
// Пример использования тернарного оператора
$settings = (empty($_POST['settings'])) ? 'По умолчанию' : $_POST['settings'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['settings'])) {
    $settings = 'По умолчанию'; // Если ничего не передано, то оставляем "По умолчанию"
} else {
    $settings = $_POST['settings']; // Если передано, то $settings присваивается переданное значение.
}
?>

Прочитайте комментарии к коду и всё должно быть понятно.

Спасибо за внимание!

tradebenefit.ru

Проверка четности:

  1. С помощью тернарного оператора:

    <?php $x = 7; $even = $x % 2 == 0 ? 'Число четное' : 'Число нечетное'; echo $even; ?>
  2. С помощью if-else:

    <?php $x = 10; if($x % 2 == 0){ echo 'Число четное'; }else{ echo 'Число нечетное'; } ?>
  3. С помощью switch:
    <?php $x = 5; switch ($x % 2){ case 0: echo 'Число четное'; break; default: echo 'Число нечетное'; } ?>

Условие if-else в PHP

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

if (логическое выражение) итструкция1; else итструкция2;

if (логическое выражение)

    итструкция1;

else

    итструкция2;

Если логическое выражение истинно,то выполняется инструкция1, а иначе — инструкция2. Конструкция else может опускаться.

Это своего рода точка принятия решения в программе. Представим что интерпретатор PHP это человек собирающийся перейти дорогу и напишем для него инструкцию:

$light = «зеленый»; if ($light == «зеленый»){ echo «переходим дорогу»; } else{ echo»стоим на месте»; }

$light = «зеленый»;

if ($light == «зеленый»){

  echo «переходим дорогу»;

}

else{

echo»стоим на месте»;    

}

Рассмотрим эту конструкцию подробней. Мы пишем слово if и в круглых скобках указываем условие, после этого открываем фигурные скобки и в них описываем действие которое будет выполняться при этом условии. Дальше пишем слово else(что означает «иначе») и указываем в фигурных скобках как следует поступить программе, если первое условие не выполняется.

Оператор if-else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется проверить сразу несколько условий? Тут на помощь к нам придет конструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.

С использованием инструкции elseif оператор if-else будет выглядить так:

if (условие) { Блок, выполняемый если условие истинно } elseif (условие) { Блок, выполняемый, если условие истинно } else { Блок, выполняемый, если все условия ложны }

if (условие) {

   Блок, выполняемый если условие истинно

}

elseif (условие) {

    Блок, выполняемый, если условие истинно

}

else {

   Блок, выполняемый, если все условия ложны }

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

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

<?php $a=9; $b=33; if ($a > 0 && $b > 0){ if($a<$b){ echo «a меньше чем b»; } else{ echo «a больше чем b»; } } ?>

    <?php

    $a=9;

    $b=33;

    

    if ($a > 0 && $b > 0){

        if($a<$b){

            echo «a меньше чем b»;

}

            else{                

                echo «a больше чем b»;

}

        

}

    

    ?>

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

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое выражение): команды; elseif (другое логическое выражение): другие команды; else: иначе команды; endif

if (логическое выражение):

команды;

elseif (другое логическое выражение):

другие команды;

else:

иначе команды;

endif

Обратите внимание на расположение двоеточия. Его пропуск считаеться синтаксической ошибкой. Блоки else и elseif можно пропустить.

Оператор условия if else Основы PHP с нуля Урок №9


Оператор условия if else Основы PHP с нуля Урок №9

Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу вам об операторе условий if else. В буквальном переводе if означаете «если», а else – «иначе». Сама конструкция if else помогает сверять данные и выводить результат (выводить сообщения, выполнять какую-то команду, перенаправлять пользователя на секретную страницу или впускать в админ-панель). Чтобы научиться писать правильно условия и понять конструкцию if else, я наведу жизненный пример, который очень похож на конструкцию if else.
Вы даете своему мозгу команду: как только звучит будильник (6:00), я должен встать, умыться, почистить зубы, одеться и галопом бежать на работу. Если будильник не звонит в 6:00, значит можно спать, так как на работу бежать не нужно.
Вы заметили конструкцию if else? Условием будет установленное время будильника «6:00». Если будильник звонит, то встаем и бежим на работу, если не звонит (иначе, еще говорят ложь), значит, спим дальше.
Таких примеров жизненных можно навести массу, например: если идет дождь, то сижу дома, если нет дождя, тогда беру мяч и иду играть футбол.
Итак, как же можно записать конструкцию if else? Очень просто.
Пойдем поэтапно и начнем с простого условия – оператор if.

Оператор условия if

Для лучшего понимания я изобразил схему конструкции if в виде рисунка:

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


<?php
$weather = "дождь"; //значение
if ($weather=="дождь") // условие
{
echo "Я сижу дома"; // результат
}
?>

Если вы сохраните php файл с этим кодом и откроете его через локальный сервер (см. урок №3), то в результате получится:

Я сижу дома

⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением «дождь» (строка №3). Человеческим языком этот код звучит так: если переменная $weather равна значению «дождь», тогда выводить нужно текст «Я сижу дома«. Кстати, напомню вам (если подзабыли урок №8), что знак равенства обозначается двойным знаком «равно», вот так (==). Если к переменной $weather написать другое значение (строка №2), например, снег, тогда в браузере будет пустая страничка, так как условия не были соблюдены.

→ КОД-ШАБЛОН «КОНСТРУКЦИЯ if»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
}
?>

 

→ Шпаргалка:

Равенство: ==
Пример: if ($a == $b)

Не равенство: !=
Пример: if ($a != $b)

Больше: >
Пример: if ($a > $b)

Меньше: <
Пример: if ($a < $b)

Больше или равно: >=
Пример: if ($a >= $b)

Меньше или равно: <=
Пример: if ($a <= $b)

Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)

Логическое «или»: or, ||
Пример: if ($a ==$b || $c !=$d)

 

Оператор условия if-else

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

Теперь схему переведем в реальный код:


<?php
$weather = "солнце"; //значение
if ($weather=="дождь") //условие
{
echo "Я сижу дома"; //результат если условие верно
}
else
{
echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно
}
?>

Результат:

Я беру мяч и иду играть в футбол

⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением «дождь» (строка №3), но так как переменной $weather я присвоил значение «солнце» (строка №2), то условие не было соблюдено (значения не одинаковы), а это значит, что будет работать вторая часть кода (else):


else
{
echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно
}

→ КОД-ШАБЛОН «КОНСТРУКЦИЯ if-else»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
}
else
{
Этот код выполнится,
если условие не верно
}
?>

Двойное условие if-else

Переходим к более сложному – двойное условие if-else.
Давайте на примере создадим проверку пароля и логина.

Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке.

Приступим.
Создадим для начала две переменные $logo и $password с соответствующими значениями:


<?php
$logo = "StepkinBLOG"; //значение
$password = 1234567890; //значение
?>

Теперь создадим двойное условие для проверки переменных $logo и $password:


<?php
$logo = "StepkinBLOG"; //значение
$password = 1234567890; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие
{
echo "добро пожаловать в админ-панель"; //результат если условие верно
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Обратите внимание, в условии мы разделили две переменные оператором «AND». Это означает, что две переменные должны быть правильными для выполнения условия, но так как у нас в условии не совпадает пароль (стока№4), значит, условие неверное и на экране вы увидите вот такое сообщение:

Логин или пароль не верный

Если поменяете значение переменной $password на «123» (строка №3), тогда условия будут полностью соблюдены (строка №4):


<?php
$logo = "StepkinBLOG"; // значение
$password = 123; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие
{
echo "добро пожаловать в админ-панель"; //результат если условие верно
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Результат:

добро пожаловать в админ-панель

Вложенные конструкции if-else

Вложенная конструкция – это когда внутри конструкции находится еще одна конструкция. Не совсем понятно объяснил? Не беда, на примере все поймете.

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

Приступим:

Создадим для начала три переменные, $logo, $password и $x с соответствующими значениями:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
?>

Теперь создадим двойное условие для проверки переменных $logo и $password:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно
}
?>

Теперь под комментарием » // тут будет еще одно условие с секретным словом» (строка №7) пропишите еще одну конструкцию if-else с условием проверки переменной $x:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "Stepa"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
if ($x = "BlogGOOD") //условие №2
{
echo "добро пожаловать в админ-панель"; //результат если условие верно №2
}
else
{
echo "секретное слово не верное"; //результат если условие не верно №2
}
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно №1
}
?>

Так как секретное слово неверное (строка №8), то на экране будет сообщение:

секретное слово неверное

Если вы замените значение переменной $x на «BlogGOOD», тогда и секретное слово будет правдивым:


<?php
$logo = "StepkinBLOG"; //значение
$password = 123; //значение
$x = "BlogGOOD"; //значение
if ($logo =="StepkinBLOG" and $password == 123) //условие №1
{
// тут будет еще одно условие с секретным словом
if ($x = "BlogGOOD") //условие №2
{
echo "добро пожаловать в админ-панель"; //результат если условие верно №2
}
else
{
echo "секретное слово неверное"; //результат если условие не верно №2
}
}
else
{
echo "Логин или пароль не верный"; //результат если условие не верно №1
}
?>

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

добро пожаловать в админ-панель

→ КОД-ШАБЛОН «ВЛОЖЕННАЯ КОНСТРУКЦИЯ if-else»:


<?php
if (условие)
{
Этот код выполнится,
если условие верно
if (условие)
{
Этот код выполнится,
если условие верно
}
else
{
Этот код выполнится,
если условие не верно
}

}
else
{
Этот код выполнится,
если условие не верно
}
?>

Оператор условия elseif

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

Синтаксис:


<?
if (условие)
{
действие
}
elseif (условие)
{
действие
}
elseif (условие)
{
действие
}
else
{
Действие, если ни один случай не подошел
}
?>

Заметьте, в строках №6 и №10 специально два слова написаны вместе «elseif», если вы их разделите пробелом «else if», то код выдаст ошибку.

Давайте приведу рабочий код с выбором учебника по программированию.

Пример:


<?
// Используем elseif
$stepkinblog = "PHP";
if ($stepkinblog == "C++")
{
echo "Вы заказали учебник по C++";
}
elseif ($stepkinblog == "JavaScript")
{
echo "Вы заказали учебник по JavaScript";
}
elseif ($stepkinblog == "PHP")
{
echo "Вы заказали учебник по PHP";
}
elseif ($stepkinblog == "JAVA")
{
echo "Вы заказали учебник по JAVA";
}
else
{
echo "Сделайте выбор"; //Действие, если ни один случай не подошел
}
?>

Результат:

Вы заказали учебник по PHP

Способ elseif можно записать так же и вложенной конструкцией if else:


<?php
// Используем if-else
$stepkinblog = "PHP";
if ($stepkinblog == "C++")
{
echo "Вы заказали учебник по C++";
}
else
{
if ($stepkinblog == "JavaScript")
{
echo "Вы заказали учебник по JavaScript";
}
else
{
if ($stepkinblog == "PHP")
{
echo "Вы заказали учебник по PHP";
}
else
{
if ($stepkinblog == "JAVA")
{
echo "Вы заказали учебник по JAVA";
}
else
{
echo "Зделайте выбор"; //Действие, если ни один случай не подошел
}
}
}
}
?>

Результат такой же, вот только запутаться легче (я  2 раза запутался в своем же коде ) .

Дополнение к уроку (пока знать не обязательно):

Есть еще несколько вариантов, как можно записывать конструкцию if else (альтернативный синтаксис).
Про альтернативный синтаксис я подготовлю целый урок, где все растолкую и покажу. Сейчас просто пробежитесь глазами.
Код №1:


<?php
$a = 15;
if ($a == 15):
?>
<h4> Переменная "$а" содержит значение 15 </h4>
<?php endif; ?>

Код №2:


<?php
$a = 6;
if ($a == 5):
echo " Переменная содержит значение 5";

elseif ($a == 6):
echo " Переменная содержит значение 6";

else:
echo " Переменная не содержит значение 5 и не 6";
endif;
?>

Домашнее задание:
Попробуйте в условии вместо равенства (==) поставить неравенство (!=) или попробовать со знаками больше меньше:


<?
$num = 1;
if ($num <= 10)
{
echo "переменная меньше или равна 10";
}
else
{
echo "переменная больше 10";
}
?>

а также замените оператор «AND» на «OR».

Все, жду вас на следующих уроках! Подписывайтесь на обновления блога!

Предыдущая запись
Как мы отдыхали в Геническе Следующая запись
Конструкция выбора – switch-case Основы PHP с нуля Урок №10

PHP 5.6 и PHP 7 на русском: elseif/else if

elseif/else if

(PHP 4, PHP 5, PHP 7)

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b or 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;?>

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

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

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

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

PHP оператор If

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

PHP If Пример

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


$my_name = "Вася";

if ( $my_name == "Вася" ) {
	echo "Привет, Вася!<br />";
}
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 →

Основное руководство по оператору if PHP с передовыми практиками

Резюме : в этом руководстве вы узнаете об операторе if PHP в PHP и о том, как его использовать для выполнения блока кода условно.

Введение в оператор if PHP

Оператор if позволяет выполнять оператор, если выражение оценивается как true . Ниже показан синтаксис оператора if :

 

Язык кода: HTML, XML (xml)

В этом синтаксисе PHP сначала вычисляет выражение .Если выражение оценивается как true , PHP выполняет оператор . В случае, если выражение оценивается как false , PHP просто игнорирует оператор .

На следующей блок-схеме показано, как работает оператор if :

В следующем примере оператор if используется для отображения сообщения, если для переменной $ is_admin задано значение true :

 

Язык кода: HTML, XML (xml)

Поскольку $ is_admin равно true , скрипт выводит следующее сообщение:

 

Добро пожаловать, админ!

Фигурные скобки

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

 

Язык кода: HTML, XML (xml)

В следующем примере используется оператор if , который выполняет несколько операторов:

 

Язык кода: HTML, XML (xml)

В этом примере оператор if отображает сообщение и устанавливает для переменной $ can_edit значение true , если значение переменной $ is_admin равно true .

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

 

Язык кода: HTML, XML (xml)

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

Вложение операторов if

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

 

Язык кода: HTML, XML (xml)

В следующем примере показано, как вложить оператор if в другой оператор if :

 

Язык кода: HTML, XML (xml)

Вставить оператор

if в HTML

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

 

Язык кода: HTML, XML (xml)

В следующем примере используется оператор if , который показывает ссылку редактирования, если $ is_admin равно true :

 

Демонстрация PHP if Изменить Просмотр

Язык кода: HTML, XML (xml)

Поскольку $ is_admin равно true , сценарий показывает ссылку «Изменить».Если вы измените значение $ is_admin на false , вы не увидите ссылку «Изменить» в выходных данных.

Распространенная ошибка оператора if в PHP

Распространенная ошибка, которую вы можете иметь, - это использование неправильного оператора в операторе if . Например:

 

Язык кода: HTML, XML (xml)

Этот сценарий показывает сообщение, если $ checke d - 'off' .Однако выражение в операторе if является присваиванием, а не сравнением:

 

$ checked = 'off'

Язык кода: PHP (php)

Это выражение назначает буквальную строку 'off ' в $ проверяет переменную и возвращает эту переменную. Он не сравнивает значение переменной $ checked со значением 'off' . Следовательно, выражение всегда оценивается как истинно , что неверно.

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

 

Язык кода: HTML, XML (xml)

Если вы случайно используете оператор присваивания (=), PHP вместо этого выдаст синтаксическую ошибку:

 

Язык кода: HTML, XML (xml)

Ошибка:

 

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный знак '='...

Язык кода: JavaScript (javascript)

Сводка

  • Оператор if выполняет оператор , если условие оценивается как истинно .
  • Всегда используйте фигурные скобки, даже если у вас есть один оператор для выполнения в операторе if . Это делает код более очевидным.
  • Используйте шаблон if (value == $ variable_name) {} , чтобы избежать возможных ошибок.

Вы нашли это руководство полезным?

PHP в противном случае и Switch Case

If Else и Switch Case - это управляющие структуры, которые позволяют выполнять сегменты кода на основе заданных условий.Они создают динамическое поведение PHP.

Если

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

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
}
 

Если еще

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

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
} еще {
// Показать общие предложения
}
 

Если иначе

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

 if (($ age> 12) && ($ age <20)) {
// Показать предложения для подростков
} elseif ($ age> 40) {
// Показать предложения для взрослых
} еще {
// Показать общие предложения
}
 

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

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

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

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

Корпус переключателя

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

 $ day = 'среда';

switch ($ day) {

case 'Monday':
echo 'Желаю начать все сначала!';
перерыв;

case 'среда':
echo 'Продолжайте.Удачи!';
перерыв;

case 'Friday':
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

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

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

Переключатель
 ($ день) {

case 'Monday':
echo 'Желаю начать все сначала!';
перерыв;

case 'Вторник':

case 'среда':

case 'Четверг':
echo 'Продолжайте. Удачи!';
перерыв;

case 'Friday':
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

В приведенном выше коде, если $ day совпадает со вторником, средой или четвергом, будет напечатано «Продолжить. Удачи!'.

If Else против корпуса Switch

If Else можно использовать в любом случае, когда необходимо провести сравнения.Каждый оператор If проверяет условие, и операнды, связанные с этим условием, могут отличаться от одного If к другому присоединенному Elseif .

Switch Case удобно использовать, когда одно и то же значение сравнивается с набором значений. В Switch Case , поскольку обычно нет условий для оценки, он может быть более эффективным по сравнению с аналогом Elseif .

Хотя это не является обычным явлением, условия можно использовать в Switch Case Elseif , и Switch Case ниже работают одинаково. Логическое значение true передается коммутатору Switch , поэтому выполнение всегда будет передаваться внутренним блокам кода.

 $ day = 'Пятница';
$ longShift = истина;

if ($ day == 'Monday') {
echo 'Желаю начать все сначала!';
} elseif ($ day == 'среда') {
echo 'Продолжайте. Удачи!';
} elseif ($ day == 'Friday' &&! $ longShift) {
echo «Счастливых выходных!»;
} еще {
echo «Добрый день!»;
}
 
 $ day = 'Пятница';
$ longShift = истина;

switch (true) {

case ($ day == 'понедельник'):
echo 'Желаю начать все сначала!';
перерыв;

case ($ day == 'среда'):
echo 'Продолжайте.Удачи!';
перерыв;

case ($ day == 'Friday' &&! $ longShift):
echo «Счастливых выходных!»;
перерыв;

По умолчанию:
echo «Добрый день!»;
перерыв;

}
 

Тернарный оператор (сокращение If / Else)

Тернарный оператор позволяет нам возвращать одно из двух значений в зависимости от заданного условия. Его синтаксис показан ниже.

 (выражение)? (Если выражение истинно) :( если выражение ложно)
 

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

 эхо (дата ('G') <12)? 'Доброе утро!' : 'Добро пожаловать!';
 

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

 $ приветствие = (дата ('G') <12)? 'Доброе утро!' : 'Добро пожаловать!';
эхо $ приветствие;
 

Начиная с PHP 5.3, можно исключить среднюю часть тернарного оператора. В следующем примере, если $ name не пусто, будет напечатано его значение. В противном случае будет напечатано Анонимный .

 эхо ($ имя)? : «Анонимный»;
 

PHP if..else и elseif: Разъяснено наглядными примерами

Назначение if..else в PHP

if else - это оператор принятия решений в PHP и многих других языках программирования.

Оператор if в PHP будет выполнять один блок кода между двумя или несколькими вариантами, поэтому решение принимается на основе определенных заданных критериев.

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

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

if ($ Number == 3) {

echo "Показать что-нибудь, если число равно 3";

} else {

echo "Для любого другого числа, или условие неверно!";

}


Примечание. Вы также можете использовать только , если , без оператора else

Если вариантов больше, используйте , если..elseif с else операторами. Например:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

13

14

18

19

20

21

22

23

24

25

26

27

28

29

if ($ Месяц == «Янв»)

echo «Выполнить код января»;

elseif ($ Месяц == «Фев»)

echo «Выполнить код февраля»;

elseif ($ Месяц == «Мар»)

echo «Выполнить мартовский код»;

else

echo «Любой другой месяц»;


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

Я объясню и то, и другое на визуальных примерах в этом руководстве, чтобы вы могли понять, как использовать if..else с HTML или другими веб-элементами, поскольку PHP обычно используется для веб-проектов.

Простой пример для начала - if..else

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

В этом примере я просто объявил переменную и присвоил ей числовое значение.

См. Онлайн-демонстрацию и код Только

, в примере используется оператор if..else. Если заданное число равно 3, оно будет оценено как истинное в операторе if, поэтому оператор внутри оператора if будет выполнен. Если это какое-то другое число, будет выполняться часть инструкции PHP else. Вы можете скопировать код и попробовать его в своем редакторе PHP.

Оператор PHP elseif с раскрывающимся списком выбора, div и CSS

Ниже приведен пример использования if с оператором PHP elseif.Когда вы откроете демонстрационную страницу, отобразится раскрывающийся список HTML. В раскрывающемся списке вы можете выбрать цвет.

При изменении раскрывающегося списка вызывается тот же файл PHP, где я использовал if с оператором elseif.

При выборе цвета в раскрывающемся списке будет отображаться div с тем же цветом.

Сначала посмотрите демоверсию, а затем небольшое описание:

См. Онлайн-демонстрацию и код

В этом примере в операторах if и elseif PHP используется следующий блок кодов:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

47

00050005 48

000

51

52

53

$ Color = $ _REQUEST ["цвет"];

if ($ Color == "красный") {

echo "

";

}

elseif ($ Color == "оранжевый") {

echo "

";

}

elseif ($ Color == "желтый") {

echo "

";

}

elseif ($ Color == "зеленый") {

echo "

";

}

elseif ($ Color == "бордовый") {

echo "

";

}

elseif ($ Color == "синий") {

echo "

";

}

elseif ($ Color == "розовый") {

echo "

";

}

else {

echo («Выберите цвет из раскрывающегося списка»);

}

?>


Как видите, сначала выбранный цвет выбирается с помощью $ _REQUEST [«цвет»]; и присвоено переменной $ color .После этого используется оператор if, в котором проверяется значение цвета. Если значение равно «red», он будет отображать div красного цвета с помощью оператора echo.

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

Ниже приведен код HTML для раскрывающегося списка Где файл PHP вызывается с выбранным цветом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

18

19

20

21

22

23


Обратите внимание, что этот пример просто демонстрирует использование if..elseif заявления. В реальном времени вы можете использовать JavaScript для изменения цвета div или некоторых других элементов на веб-странице.

Пример PHP для проверки формата пароля

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

Посмотреть демонстрацию онлайн:

См. Онлайн-демонстрацию и код

Когда вы отправляете кнопку, значение текстового поля назначается переменной $ address с помощью $ _POST [‘address’] .Эта переменная проверяется в условии PHP if else для проверки правильности формата электронной почты с помощью встроенной функции FILTER_VALIDATE_EMAIL:

if (filter_var ($ address, FILTER_VALIDATE_EMAIL)) {

echo "$ address email is valid!";

} else {

echo "$ address - недействительный адрес электронной почты!";

}


Если введенный адрес электронной почты правильный, условие if будет истинным, и оператор echo отобразит данную строку.В противном случае оператор else выполнит данный оператор.

Пример if..else с циклом foreach и массивами

В этом примере я буду использовать оператор if с циклом foreach и массивами. Для этого создается простой числовой массив из пяти элементов.

Это элементы: 5, 10, 15, 20, 25. После этого цикл foreach используется для отображения этих элементов массива.

Задача - выйти из цикла foreach, когда он достигнет значения 15 или более.

См. Онлайн-демонстрацию и код

Для этого я просто использовал оператор if. В операторе if дано следующее условие:

if ($ i> = 15) {

break;

}


Итак, как только значение переменной $ i достигнет 15 (что является значением текущего элемента массива), оператор break остановит цикл, и управление перейдет к следующей строке за пределами цикла foreach.

Полный код приведен на демонстрационной странице.

Пример вложенного оператора if

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

Использование другого оператора if внутри первого оператора if вложенного if. См. Следующую структуру:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

13

14

18

19

if ($ a == 10) {

echo («Значение 10»);

if ($ b == 20) {

echo («Значение b равно 20»);

}

}

// закрытие первым, если statemnt

else {

echo («Значение a не 10»);

}


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

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

Заключение:

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

Вы можете использовать операторы сравнения, такие как ==,! =,>, <, <= И т. Д., И логические операторы, такие как and, or, &&, || и т.д., чтобы оценить состояние.

Если у вас много блоков elseif, вы можете рассмотреть возможность использования оператора switch PHP.

PHP | Принятие решений - GeeksforGeeks

PHP позволяет нам выполнять действия на основе некоторых типов условий, которые могут быть логичными или сравнительными. В зависимости от результата этих условий, то есть ИСТИНА или ЛОЖЬ, действие будет выполнено по запросу пользователя. Это как двусторонний путь. Если вы чего-то хотите, идите туда или поверните туда. Чтобы использовать эту функцию, PHP предоставляет нам четыре условных оператора:

  • оператор if
  • оператор if… else
  • оператор if… elseif ... else
  • оператор switch

Позвольте нам Теперь рассмотрим каждый из них более подробно:

  1. if Заявление : Этот оператор позволяет нам установить условие.Если он имеет значение ИСТИНА, будет выполнен следующий блок кода, заключенный в предложение if.
    Синтаксис :
 if (условие) {
    // если TRUE, то выполняем этот код
} 
  1. Пример:

PHP

$ x = 12;

если ( $ x > 0) {

echo «Число положительное» ;

}

?>

  1. Выход:
 Число положительное 
  1. Блок-схема

    64:

927002

: Мы поняли, что если условие будет выполняться i.е., ИСТИНА, тогда будет выполнен блок кода внутри if. Но что, если условие НЕ ИСТИНА, и мы хотим выполнить действие? Вот тут-то еще и вступает в игру. Если условие ИСТИНА, то если блок выполняется, иначе выполняется блок else.
Синтаксис :

 if (условие) {
    // если TRUE, то выполняем этот код
}
еще{
    // если ЛОЖЬ, то выполнить этот код
} 
  1. Пример:

PHP

$ x = -12;

если ( $ x > 0) {

echo «Число положительное» ;

}

else {

echo «Число отрицательное» ;

}

?>

  1. Выход:
 Число отрицательное 
  1. Диаграмма

    64:

    2 927002

    6 Заявление else : Это позволяет нам использовать несколько операторов if… else.Мы используем это, когда есть несколько условий ИСТИННЫХ случаев.
    Синтаксис :

 if (условие) {
    // если TRUE, то выполняем этот код
}
elseif {
    // если TRUE, то выполняем этот код
}
elseif {
    // если TRUE, то выполняем этот код
}
еще {
    // если ЛОЖЬ, то выполнить этот код
} 
  1. Пример:

PHP

$ x = «Август» ;

если ( $ x == «Январь» ) {

echo «Happy Republic Day» ;

}

elseif ( $ x == «Август» ) {

echo «С Днем Независимости !!!» ;

}

else {

echo «Ничего не показать» ;

}

?>

  1. Выход:
 С Днем Независимости !!! 
  1. Блок-схема :



  1. switch Заявление : «Switch» работает в различных случаях i.е., он имеет различные случаи, которым он соответствует условию и соответствующим образом выполняет конкретный блок case. Сначала он оценивает выражение, а затем сравнивает со значениями каждого случая. Если регистр совпадает, выполняется тот же случай. Чтобы использовать переключатель, нам нужно познакомиться с двумя разными ключевыми словами, а именно: break и default .
    1. Оператор break используется для остановки потока автоматического управления в следующих случаях и выхода из варианта переключения.
    2. Оператор по умолчанию содержит код, который будет выполняться, если ни один из вариантов не совпадает.

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

В дополнение ко всем этим условным операторам PHP предоставляет сокращенный способ записи if… else, называемый тернарными операторами. Этот оператор использует вопросительный знак (?) И двоеточие (:) и принимает три операнда: условие для проверки, результат для ИСТИНА и результат для ЛОЖЬ.
Синтаксис :

 (условие)? если ИСТИНА, выполните это: в противном случае выполните это; 

Пример:

PHP

$ x = -12;

если ( $ x > 0) {

echo "Число положительное \ n" ;

}

else {

echo "Число отрицательное \ n" ;

}

echo ( $ x > 0)? 'Число положительное' :

'Число отрицательное' ;

?>

Выход:

 Число отрицательное
Число отрицательное 

Эту статью предоставил Чинмой Ленка .Если вам нравится GeeksforGeeks и вы хотели бы внести свой вклад, вы также можете написать статью, используя write.geeksforgeeks.org, или отправить свою статью по адресу [email protected] Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарий, если вы обнаружите что-то неправильное, или если вы хотите поделиться дополнительной информацией по теме, обсужденной выше.


PHP if инструкция - PHP скрипт

оператор if в PHP

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

В выходных операциях if появится только условие, которое должно быть истинным.

If Statement работает так же, как и утверждение на английском языке, «если X произойдет, то сделайте Y».

Напишите программу для проверки четного числа. (Число введено пользователем)

 



Введите свой номер

Выход
10 - четное число
Введите свой номер

в приведенном выше примере
мы проверяем, соответствует ли программа оператора
Сначала мы создаем текстовое поле и кнопку в форме с помощью сценария HTML.
в этой программе мы проверяем, является ли данный номер четным или нет.
Функция isset () используется для проверки существования. $ _GET [] используется для сбора значения, введенного пользователем.
после этого при проверке условия число четное. если число, введенное пользователем, четное. оператор выполняется, выведите четное число.


WAP для проверки положительного номера данного номера

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

  0)

{

echo $ num."положительное число";

}

?>



Введите свой номер

Выход
10 - положительное число
Введите свой номер

в приведенном выше примере Сначала мы создаем текстовое поле и кнопку в форме, используя теги HTML.

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

Функция isset () используется для проверки существования. Функция $ _ GET () используется для сбора значения, введенного пользователем.

, если значение больше нуля, то оператор выполнится и покажет сообщение

Найдите сумму четных чисел от 1 до 100

 

 

Выход 2550

в приведенном выше примере
целая программа написана на PHP-скрипте.Здесь мы хотим подвести даже нет.
Мы объявляем переменную ($ sum), инициализируем ее значение = 0.
Цикл For используется для проверки значения от 1 до 100. Условие, которое объявляется внутри if, проверяет, является ли число четным или нет.
, если нет четно, оператор выполнит и напечатает сумму всех, даже не существующих, от 1 до 100.
Первоначально значение $ sum = 0. после проверки условия четного числа. он сохраняет четное число в переменной ($ i) и суммирует его с ($ sum).
снова и снова проверяет условие четности и вычисляет сумму.

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

PHP

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

Оператор if довольно прост, потому что в выходных данных оператора If будет отображаться, когда условие должно быть истинным, а если условие ложно, ничего не отображается (пусто).

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

По-английски это утверждение будет выглядеть так: «если произойдет X, сделайте Y; в противном случае сделайте Z».

WAP для проверки положительного или отрицательного значения введенного числа.

  0)

{

echo $ num. "положительное число";

}

еще

{

echo $ num. "отрицательное число";

}

?>


 
Введите свой номер

Выход
-10 - отрицательное число
Введите свой номер

в приведенном выше примере
Сначала мы создаем текстовое поле и кнопку в форме с помощью тегов HTML.
в этой программе мы проверяем, что данное число больше нуля, если оно больше нуля, выполняется инструкция, показывающая сообщение "число положительное". иначе число отрицательное.
Через суперглобальную переменную ($ _POST []) собрать значение из HTML-скрипта и сохранить в локальной переменной ($ num), которую вводит пользователь.
после этого выполняется условие if else. если условие ($ num> 0) истинно, выполнить тело оператора if, иначе выполнить тело else.
Здесь пользователь вводит значение -10, поэтому на выходе будет отображаться: -10 - отрицательное число.

WAP, чтобы проверить, является ли введенный номер четным или нечетным

 



Введите свой номер

Выход
1 - нечетное число
Введите свое число

в приведенном выше примере
Сначала мы создаем текстовое поле и кнопку в форме с помощью HTML-скрипта.
в этой программе мы проверяем четность данного номера или нет.
С помощью $ _POST [] собранное значение, введенное пользователем.
после этой проверки, если число введено пользователем, разделенное на 2, и его модуль равен 0 ($ num% 2 == 0),
это означает, что если тело операторов выполняется и выводится, то данное число является четным числом, иначе данное число является нечетным числом.

Операторы If - Учебник по сценариям Bash

Если заявления!

Решения, решения.

Введение

Bash операторы if очень полезны.В этом разделе нашего руководства по созданию сценариев Bash вы узнаете, как можно использовать операторы if в сценариях Bash для автоматизации задач.

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

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

Основные операторы If

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

if []
then

fi

Все, что находится между , затем и fi (в обратном направлении), будет выполнено, только если проверка (в квадратных скобках) верна.

Давайте посмотрим на простой пример:

if_example.sh
  1. #! / Bin / bash
  2. если [1 доллар-gt 100]
  3. , затем
  4. echo Эй, это большое число.
  5. pwd
  6. fi
  7. дата

Давайте разберемся:

  • Строка 4 - Посмотрим, больше ли первый аргумент командной строки 100
  • Строки 6 и 7 - Будет запущено, только если тест в строке 4 вернет истину.Здесь вы можете иметь столько команд, сколько захотите.
  • Строка 6 - Обратная косая черта (\) перед одинарной кавычкой (') необходима, поскольку одинарная кавычка имеет особое значение для bash, и мы не хотим этого особого значения. Обратная косая черта ускользает от специального значения, чтобы снова сделать обычную одинарную кавычку.
  • Строка 8 - fi сигнализирует о конце оператора if. Все команды после этого будут выполняться в обычном режиме.
  • Строка 10 - Поскольку эта команда находится вне оператора if, она будет запущена независимо от результата оператора if.
  1. ./if_example.sh 15
  2. Вс 18 июл 4:02:39 2021
  3. ./if_example.sh 150
  4. Эй, это большое количество.
  5. / домашний / райан / бин
  6. Вс 18 июл 4:02:39 2021

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

Тест

Квадратные скобки ([]) в приведенном выше операторе if на самом деле являются ссылкой на команду test .Это означает, что здесь также могут использоваться все операторы, которые позволяет тест. Посмотрите справочную страницу для теста, чтобы увидеть все возможные операторы (их довольно много), но некоторые из наиболее распространенных из них перечислены ниже.

Оператор Описание
! ВЫРАЖЕНИЕ ВЫРАЖЕНИЕ ложное.
-n СТРОКА Длина STRING больше нуля.
-z СТРОКА Длина строки STRING равна нулю (т. Е. Она пуста).
СТРОКА1 = СТРОКА2 STRING1 совпадает с STRING2
СТРОКА1! = СТРОКА2 STRING1 не равно STRING2
ЦЕЛОЕ1-экв ЦЕЛОЕ2 INTEGER1 численно равно INTEGER2
ЦЕЛОЕ1 -gt ЦЕЛОЕ2 INTEGER1 численно больше INTEGER2
ЦЕЛОЕ1 -lt ЦЕЛОЕ2 INTEGER1 численно меньше INTEGER2
-d ФАЙЛ ФАЙЛ существует и является каталогом.
-e ФАЙЛ ФАЙЛ существует.
-r ФАЙЛ ФАЙЛ существует, и разрешение на чтение предоставлено.
-s ФАЙЛ ФАЙЛ существует, и его размер больше нуля (т. Е. Он не пустой).
-w ФАЙЛ ФАЙЛ существует, и разрешение на запись предоставлено.
-x ФАЙЛ ФАЙЛ существует, и предоставлено разрешение на выполнение.

Несколько замечаний:

  • = немного отличается от -экв . [001 = 1] вернет false, поскольку = выполняет сравнение строк (т. Е. Символ для символа одинаков), тогда как -eq выполняет числовое сравнение, означающее, что [001 -eq 1] вернет true.
  • Когда мы говорим о ФАЙЛЕ выше, мы на самом деле имеем в виду путь. Помните, что путь может быть абсолютным или относительным и может относиться к файлу или каталогу.
  • Поскольку [] - это просто ссылка на команду test , мы можем экспериментировать и устранять неполадки с помощью test в командной строке, чтобы убедиться, что мы правильно понимаем ее поведение.
  1. тест 001 = 1
  2. echo $?
  3. 1
  4. тест 001-экв 1
  5. echo $?
  6. 0
  7. сенсорный myfile
  8. test -s myfile
  9. echo $?
  10. 1
  11. ls / etc> myfile
  12. test -s myfile
  13. echo $?
  14. 0

Давайте разберемся:

  • Строка 1 - сравнение на основе строк.Тест не печатает результат, поэтому вместо этого мы проверяем его статус выхода, что мы и сделаем в следующей строке.
  • Строка 2 - Переменная $? содержит статус выхода ранее запущенной команды (в данном случае test). 0 означает ИСТИНА (или успех). 1 = ЛОЖЬ (или сбой).
  • Строка 4 - На этот раз мы выполняем численное сравнение.
  • Строка 7 - Создайте новый пустой файл myfile (предполагается, что myfile еще не существует).
  • Строка 8 - Размер myfile больше нуля?
  • Строка 11 - Перенаправить некоторый контент в myfile, чтобы его размер был больше нуля.
  • Строка 12 - Проверьте размер myfile еще раз. На этот раз это ИСТИНА.

Отступ

Вы заметите, что в приведенном выше операторе if мы сделали отступ для команд, которые выполнялись, если оператор был истинным.Это называется отступом и является важной частью написания хорошего, чистого кода (на любом языке, а не только в сценариях Bash). Цель состоит в том, чтобы улучшить читаемость и усложнить нам совершение простых глупых ошибок. В Bash нет никаких правил относительно отступов, поэтому вы можете делать отступы или не делать отступы, как вам нравится, и ваши скрипты будут работать точно так же. Я настоятельно рекомендую вам сделать отступ в коде (особенно по мере того, как ваши скрипты становятся больше), иначе вам будет все труднее увидеть структуру в ваших скриптах.

Вложенные операторы If

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

nested_if.sh
  1. #! / Bin / bash
  2. если [1 доллар-gt 100]
  3. , затем
  4. echo Эй, это большое число.
  5. , если (($ 1% 2 == 0))
  6. , затем
  7. echo И тоже четное число.
  8. fi
  9. fi

Давайте разберемся:

  • Строка 4 - Выполните следующее, только если первый аргумент командной строки больше 100.
  • Строка 8 - это легкая вариация оператора if . Если мы хотим проверить выражение, мы можем использовать двойные скобки, как мы это делали для переменных.
  • Строка 10 - Запускается, только если оба оператора if верны.

Йо, чувак, я хочу сказать, что вам нравятся утверждения if , поэтому я помещаю оператор if внутри вашего оператора if .

Xzibit

(Xzibit на самом деле этого не говорил, но я уверен, что он бы сказал, если бы он размещал Pimp My Bash Script.)

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

Если еще

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

if []
then

else

fi

Теперь мы можем легко читать из файла, если он указан в качестве аргумента командной строки, иначе читает из STDIN.

else.sh
  1. #! / Bin / bash
  2. , если [$ # -eq 1]
  3. , затем
  4. nl $ 1
  5. еще
  6. nl / dev / stdin
  7. fi

Если Элиф еще

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

if []
then

elif []
then

else

fi

Например, если вам 18 лет или больше, вы можете пойти на вечеринку.Если нет, но у вас есть письмо от родителей, вы можете уйти, но должны вернуться до полуночи. Иначе ты не сможешь уйти.

if_elif.sh
  1. #! / Bin / bash
  2. , если [$ 1 -ge 18]
  3. , затем
  4. echo Можете пойти на вечеринку.
  5. элиф [$ 2 == 'да']
  6. , затем
  7. echo Можешь пойти на вечеринку, но вернись до полуночи.
  8. еще
  9. echo Вы не можете пойти на вечеринку.
  10. fi

У вас может быть сколько угодно веток elif. Заключительное слово else также необязательно.

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

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

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

и.ш
  1. #! / Bin / bash
  2. , если [-r $ 1] && [-s $ 1]
  3. , затем
  4. echo Полезный файл.
  5. fi

Может быть, мы хотели бы сделать что-нибудь немного другое, если пользователь будет либо Бобом, либо Энди.

или.sh
  1. #! / Bin / bash
  2. если [$ USER == 'bob'] || [$ USER == 'andy']
  3. , затем
  4. ls -alh
  5. еще
  6. лс
  7. fi

Изложение дела

Иногда мы можем захотеть пойти разными путями на основе переменной, соответствующей серии шаблонов.Мы могли бы использовать серию операторов if и elif , но это скоро станет невыносимым. К счастью, есть инструкция case , которая может сделать вещи чище. Это немного сложно объяснить, поэтому вот несколько примеров для иллюстрации:

case <переменная> in
)

;;
<образец 2>)
<другие команды>
;;
esac

Вот базовый пример:

чехол.sh
  1. #! / Bin / bash
  2. футляр 1 доллар
  3. начало)
  4. запуск эха
  5. ;;
  6. стоп)
  7. остановка эха
  8. ;;
  9. перезапуск)
  10. перезапуск эха
  11. ;;
  12. *)
  13. эхо не знаю
  14. ;;
  15. esac

Давайте разберемся:

  • Строка 4 - Эта строка начинается с механизма case .
  • Строка 5 - Если $ 1 равно start, выполните следующие действия. символ) означает конец шаблона.
  • Строка 7 - Мы обозначаем конец этого набора операторов двойной точкой с запятой (;;). Далее следует рассмотреть следующий случай.
  • Строка 14 - Помните, что тест для каждого случая - это шаблон. * представляет любое количество любых символов. Это существенный улов, если ни один из других случаев не совпадает.Это не обязательно, но часто используется.
  • Строка 17 - esac обратный регистр и указывает, что мы находимся в конце оператора case. Любые другие операторы после этого будут выполняться как обычно.
  1. ./case.sh start
  2. начиная с
  3. ./case.sh перезапуск
  4. перезапуск
  5. ./case.sh бла
  6. не знаю

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

disk_useage.sh
  1. #! / Bin / bash
  2. space_free = $ (df -h | awk '{print $ 5}' | sort -n | tail -n 1 | sed 's /% //')
  3. футляр $ space_free in
  4. [1-5] *)
  5. echo Доступно много места на диске
  6. ;;
  7. [6-7] *)
  8. echo В ближайшем будущем может возникнуть проблема
  9. ;;
  10. 8 *)
  11. echo Может быть, нам стоит очистить старые файлы
  12. ;;
  13. 9 *)
  14. echo Скоро у нас может возникнуть серьезная проблема
  15. ;;
  16. *)
  17. echo Здесь что-то не так
  18. ;;
  19. esac

Сводка

если
Выполнить набор команд, если проверка верна.
остальное
Если тест не соответствует действительности, выполните другой набор команд.
Элиф
Если предыдущий тест дал ложный результат, попробуйте этот.
&&
Выполните операцию и.
||
Выполните операцию или.
чехол
Выберите набор команд для выполнения в зависимости от строки, соответствующей определенному шаблону.
Отступ
Отступы упрощают чтение кода. Это становится все более важным по мере того, как ваши сценарии Bash становятся длиннее.
Планирование
Теперь, когда ваши скрипты становятся немного сложнее, вы, вероятно, захотите потратить немного времени на размышления о том, как вы их структурируете, прежде чем приступить к делу.

Мероприятия

Теперь давайте примем некоторые решения.

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