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

  • Что нового?

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

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

    • Метод POST (2939962)
    • Привет, МИР! (907179)
    • Метод GET (661917)
    • Операторы (601792)
    • Firefox уже запущен, но не отвечает... (347165)

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

Главная » PHP - с чего начать? » Операторы выбора в PHP. условный оператор (if .. else)
PHP урок № 362

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

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

Листинг № 1 - Работа условного оператора 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 можно записать без фигурных скобок в одну строку.

Листинг № 2 - Выполнение условного оператора if без else

<?php 

$a 
= 5;

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

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

Листинг № 3 - Логический оператор && (и)

<?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.

Листинг № 4 - Логический оператор || (или)

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

?>

Листинг № 5 - Смешанное применение условных операторов

<?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 происходит множественное логическое ветвление работы скрипта. У вас, как бы, есть инструмент, с помощью которого, вы сможете предугадать поведение пользователя и направить ему ответ, либо предложить другой вариант.

Листинг № 6 - Ветвление с условным оператором 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.

Листинг № 7 - Работа конструкции 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
Администрация сайта
26.08.2012 17:42:02

Урок 13. Условная операция. Сокращённое написание конструкции if ... else.
Понравился урок? Не пропусти следующий!
Рекомендованные уроки этого раздела:
  • Константы (define, defined)
  • Типы данных в PHP
  • PHP id
  • Операторы

Напишите свой комментарий
Ваше имя
Сообщение
Введите цифры с картинки:
 

Комментарии

Руслан 11.06.2013 22:37:07
Обьясните пожалуйста Листинг номер 3 . почему выражение истинно или ложно ? что за двойные скобки по бокам и что они дают ? обьясните как происходит присваивание значения в примерах false или true
Oleg 04.07.2013 15:16:15
Здравствуйте. Регулярно в логах сервера возникают ошибки в фале роутер. В рнр совершенно не разбираюсь, решил посмотреть уроки, но видимо отсутствие базовых знаний по программированию ни к чему не привели. Сайт на джумле, в свое время убрал id статьи в этом файле, возможно это и приводит к ошибкам. Но, видимо, сам эту проблему не решу. Могли бы вы посмотреть роутер и подсказать. В любом случае, спасибо.
Oleg 05.07.2013 06:46:00
Как зарегистрироваться на форуме?
SETTER 05.07.2013 08:14:28
Вот по этой ссылке: http://lphp.ru/forum/index.php Там слева вверху, есть ссылка Регистрация.
  • Яндекс.Метрика Здесь находится аттестат нашего WM идентификатора 185571665285
  • "LPHPRU" © 2009-2021