- Подробности
-
Категория: PHP. Синтаксис
Синтаксис условной операции:
выражение1 ? выражение2 : выражение3
Если выражение1 равно true, то выполняется выражение2, если же выражение1 равно false, то выполняется выражение3.
Листинг № — Пример работы условной операции.
<?php
$a = 5;
$b = 7;
// Вариант с конструкцией if
if($a < $b)
{
echo $a;
}
else
{
$a = $b;
echo $a;
}
// Это то же самое только короче
// Переменная $a всегда будет содержать наименьшее число
$a = ($a < $b) ? $a : $b; // 5
echo $a;
?>
вторая статья Условный оператор if
Условный оператор 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 'Данные не верны!'; // Данные не верны!
}
?>