PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
  • OpenCart
Календарь
Август (2022)
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031    
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • Hello
    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
  • TOP-5

    • Метод POST (2944679 )
    • Привет, МИР! (910169 )
    • Метод GET (666368 )
    • Операторы (605182 )
    • Firefox уже запущен, но не отвечает... (352239 )

Операторы выбора в PHP. условный оператор (if .. else)

Главная» Array » Операторы выбора в PHP. условный оператор (if .. else)
PHP урок № 362
Условный оператор if
"Условный" - ключевое слово в описании этого оператора, оно говорит многое о нём. if - значит если. Есть условие при котором будет выполняться следующее действие. Условие это принимается в качестве аргумента для оператора if и может содержать выражение, либо логическую переменную. Если в качестве аргумента для if выступает выражение, то оно должно возвращать логическую переменную. На словах это выглядит запутано, давайте разберём пример работы условного оператора if .
Листинг № Array - Работа условного оператора if
<?php 

$a 
= 20;

$b = 100;

// Это условие. Если переменна b больше переменной а ...
if($b > $a)
{
    
// ... то выводим эту запись.
    
echo "$b больше $a";
}
else 
{
    
//...в противном случаи, выводим эту запись на монитор.
       
echo "$a больше $b";
}

?>
Синтаксис конструкции if .
if(condition) operator1 else operator2
Если condition истина, то выполняется всегда operator1, в противном случаи, выполняется operator2. Противный случай может быть, в данном примере, только один - это ложь, т.е FALSE
Вторая часть else, может быть не указана, тогда operator1 можно записать без фигурных скобок в одну строку.
Листинг № Array - Выполнение условного оператора if без else
<?php 

$a 
= 5;

if(
$a != 7) echo 'Правильно ' . $a . ' не равно 7';  // Правильно 5 не равно 7

?>
В предыдущих примерах в условии находился один оператор, который и определял дальнейшее выполнение конструкции if. Но если нам потребуется выполнить несколько операторов, в качестве аргумента, то нам потребуется использовать логические операторы для сравнения результата. К примеру логический оператор И, записывается он как && (две амперсанды). Работает он по принципу если правый и левый операнд истины, то всё выражение истинно (true) и наоборот.
Листинг № Array - Логический оператор && (и)
<?php 

$a 
= 5;
$b = 1;

if((
7+3) && false)
{ echo 
'всё выражение true';}
else
{echo 
'всё выражение false';} // всё выражение false


if( 7+3 && true && 2-1 )
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}


if( 
7+3 && 0)
{ echo 
'всё выражение true';}
else
{echo 
'всё выражение false';} // всё выражение false


if(8-9 && 1-3)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}


if(
$a && $b)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}

?>
Существует так же оператор выбора "или". Записывается он так ||. Оператор || (или) возвращает true, при условии, что хотя бы один из операндов равен true. То есть понятна разница, && (и) возвращает true, когда оба операнда true, а || (или), когда хотя бы один операнд равен true.
Листинг № Array - Логический оператор || (или)
<?php 

$a 
= 5;
$b = 1;

if(
$a + $b || $b)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}

if(
$b || false)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}

if(
false || true)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}

if(
false || false)
{ echo 
'всё выражение true';} 
else
{echo 
'всё выражение false';} // всё выражение false

?>
Листинг № Array - Смешанное применение условных операторов
<?php 

$a 
= 5;
$b = 1;

if(
$a + $b || $b && true)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}


if(
$a + $b || $b && $b == $a)
{ echo 
'всё выражение true';} // всё выражение true
else
{echo 
'всё выражение false';}

if((
$a + $b || $b ) && ($b == $a))
{ echo 
'всё выражение true';} // всё выражение false
else
{echo 
'всё выражение false';}

?>
Применение оператора if одно из самых распространённых в процедурном PHP, т.е. в том который вы сейчас изучаете. С помощью if происходит множественное логическое ветвление работы скрипта. У вас, как бы, есть инструмент, с помощью которого, вы сможете предугадать поведение пользователя и направить ему ответ, либо предложить другой вариант.
Листинг № Array - Ветвление с условным оператором if
<?php 

$name 
= 'user';
$pass = '123456';


if(
$name == 'user')
{
    if(
$pass == '123456')
    {
        echo 
'Здравствуйте ' . $name . ' вы ввели правильные данные авторизации.';    
    }
    else
    {
        echo 
'Вы ввели не верный пароль.';    
    }
}
else 
{
    echo 
'Вы ввели не правильное имя, попробуйте ещё раз.';    
}

?>
Листинг 6 отработает в true, т.е. вся авторизация пройдёт успешно. Хочу отметить это всего лишь пример, на самом деле авторизация пользователя значительно сложнее и в принципе не так проверяется. Ветвление, то есть вложенность if ... else, может быть сколько угодно.
Фигурные скобки в конструкции if ... else применять желательно всегда, исключение наверно может быть лишь для одиночной строки, когда не используется часть else. Хотя язык php позволяет писать эту конструкцию и без фигурных скобок, но вероятность ошибки, при таком кодировании, значительно возрастает. К тому же читабельность кода падает.
Дополнительный условный оператор elseif
elseif - существует для проверки множественного условия в операторе if. elseif может быть сколько угодно в конструкции if, но при этом else, может быть только один. Он как правило подводит итог всех условий, и если не одно условие elseif не сработало, то вход вступает else.
Листинг № Array - Работа конструкции if с дополнительным условным оператором elseif
<?php 

$name 
= 'user';
$pass = '123456';
$phone = '555';

// Пример 1
if($name == 'user')
{
    echo 
'Здравствуйте ' . $name ;     // Здравствуйте user
}
elseif(
$pass == '123456')
{
    echo 
'Вы ввели правильный пароль '.$pass.'.';    
}
elseif(
$phone == '555')
{
    echo 
'Вы ввели правильный телефон '.$phone.'.';    
}
else
{
    echo 
'Данные не верны!';    
}

// Пример 2
if($name != 'user')
{
    echo 
'Здравствуйте ' . $name ;    
}
elseif(
$pass == '123456')
{
    echo 
'Вы ввели правильный пароль '.$pass.'.';    // Вы ввели правильный пароль 123456.
}
elseif(
$phone == '555')
{
    echo 
'Вы ввели правильный телефон '.$phone.'.';    
}
else
{
    echo 
'Данные не верны!';    
}

// Пример 3
if($name != 'user')
{
    echo 
'Здравствуйте ' . $name ;    
}
elseif(
$pass != '123456')
{
    echo 
'Вы ввели правильный пароль '.$pass.'.';
}
elseif(
$phone == '555')
{
    echo 
'Вы ввели правильный телефон '.$phone.'.';    // Вы ввели правильный телефон 555.
}
else
{
    echo 
'Данные не верны!';    
}

// Пример 4
if($name != 'user')
{
    echo 
'Здравствуйте ' . $name ;    
}
elseif(
$pass != '123456')
{
    echo 
'Вы ввели правильный пароль '.$pass.'.';
}
elseif(
$phone != '555')
{
    echo 
'Вы ввели правильный телефон '.$phone.'.';
}
else
{
    echo 
'Данные не верны!';    // Данные не верны!
}
?>
Не рекомендую применять оператор elseif - плохая читабельность кода, запутанность. Если нужно применить условия выбора, лучше использовать оператор выбора switch.
Урок закончен.
SETTER © LPHP.RU
Администрация сайта
Array
Урок 13. Условная операция. Сокращённое написание конструкции if ... else.
  • Яндекс.Метрика Здесь находится аттестат нашего WM идентификатора 185571665285
  • "LPHPRU" © 2009-2022