Php умовний оператор у змінній. Основи конструкції IF-ELSE у PHP. Оператори порівняння у PHP

Головна / Усунення несправностей

(PHP 4, PHP 5, PHP 7)

elseif, as its name suggests, is a combination of if and else. Like else, it extends an if statement to execute a different statement in case the original if expression evaluates to FALSE. However, unlike else, it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE. Для прикладу, наступного коду можна відтворити як bigger than b , так і b or a is smaller than b :

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

There may be several elseif s within the same if statement. The first elseif expression (if any) that evaluates to TRUE would be executed. У PHP, ви можете також записати "else if" (у двох словах) і поведінці будуть однакові до однієї з "elseif" (у одному слові). Syntactic meaning is slightly different (якщо ви " familiar з C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.

The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE, and the current elseif expression evaluated to TRUE.

Note: Note that elseif and else if will only be considered exactly the same when using curly brackets as in the above example. When using a colon до define your if/elseif conditions, you must not separate else ifвдвох слів, або PHP буде небезпека з помилкою.

/* Incorrect Method: */
if ($a > $b):
else if ($a == $b): // Will not compile.
echo "Виконати лінію зв'язку з першою помилкою.";
endif;

/* Correct Method: */
if ($a > $b):
echo $a . " is greater than " . $ b;
elseif ($a == $b ): // Note the combination of the words.
echo $a . "equals". $ b;
else:
echo $a . " is neither greater than or equal to ". $ b;
endif;

Минулого разу я писав про існуючі типи операторів у PHP. Цей пост починає серію пов'язаних нотаток про керуючі структури (умови, цикли тощо) в PHP. У цій замітці мова піде про умовному операторі IF..ELSE в PHP. Я познайомлю вас із синтаксисом конструкції if..else, а потім на конкретних прикладах розберемо різні способи використання if в PHP.

Умови в PHP

З умовами в PHP ви будете зустрічатися в кожному скрипті. Це, мабуть найпоширеніший вид керуючих структур. У PHP є кілька типів умовних конструкцій. Сьогодні ми поговоримо про конструкцію “ if-else“.

Ті з вас, хто знайомий з будь-якою іншою мовою програмування, повинні знати логіку роботи цієї конструкції.

Отже, як виглядає синтаксис конструкції if…else у PHP:

$b) ( echo "Змінна A більше, ніж B"; ) else ( echo "Змінна B більше, ніж A"; ) ?>

По порядку:

  • умова – тут має стояти якийсь вираз, результат виконання якого має дорівнювати trueабо false. Наприклад “$a< $b”, вызов какой-то функции.
  • true(Умова виконується), то виконується перша гілка (до ключового слова else).
  • якщо результат обчислення дорівнює false(Умовні не виконується), то виконується друга гілка (після ключового слова else).

Гілки else, Яка, як ви тепер знаєте, виконується у разі, якщо умова не вірна, може і не бути. тоді конструкція ifнабуде наступного вигляду:

Якщо умова виконалася – то ми заходимо всередину, якщо не виконалося – то пропускає те, що всередині ifі йдемо далі.

Приклад використання if…else у PHP

$b) ( echo "Змінна A більше, ніж B"; ) else ( echo "Змінна B більше, ніж A"; ) ?>

Наберіть цей приклад та подивіться, як він працює. У нашому випадку на екран виведеться рядок echo "Змінна B більше, ніж A", це відбувається тому, що результат порівняння $a > $bдорівнює false(брехня), т.к. 5 менше ніж 10. Як бачите все просто.

Спробуйте надати інші значення змінним $aі $bі подивитися, як змінити результат. Також спробуйте переписати цю конструкцію без використання else.

Якщо щось не до кінця зрозуміло – пишіть у коментах, розберемося 🙂 Удачі!


Головне у дію це оператора- Це умова. if в перекладі з англійської означає якщо. Умова приймається як аргумент (що в дужках). Як умова може виступати логічний виразчи логічна змінна. Якщо простіше, то зміст виразу буде таким:

If (умова)(
умова виконана, робимо так
}
else
{
умова не виконана, робимо інакше
}
Сподіваюся, логіка умовної операції зрозуміла. Тепер розглянемо приклад.

$a = 5;
$ b = 25;

// Тепер увага! Умова: Якщо $b більше $a
// Знаки > і< , как и в математике, обозначают больше и меньше
if($b > $a)
{
// якщо умова виконано, то виконуємо цю дію
echo "$b більше $a";
}
else
{
// якщо не виконано, то це
echo "$a більше або одно $b";
}
?>
Демонстрація Завантажити вихідні
У результаті скрипт виведе 25 більше 5. Приклад досить простий. Сподіваюся, все зрозуміло. Тепер пропоную розглянути ситуацію складніше, де потрібно дотриматись кількох умов. Кожна нова умова міститиме після основної умови if()- допоміжне, що записується як else if(). В кінці як завжди буде else.

Завдання:У школі проводять тестування. Скрипту потрібно вирахувати бал, знаючи умови отримання кожної оцінки та сам бал школяра. Давайте подивимося, як це записати, і не забудьте прочитати коментар.

$ 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
Тепер розглянемо оператори на прикладах:

// Всупереч звичці = означає привласнення значення змінної, а == як одно
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. Однак, ця операція дійсна лише з присвоєнням значень змінної. Тепер розглянемо готовий приклад.

// Приклад використання тернарного оператора
$settings = (empty($_POST["settings"])) ? "За замовчуванням": $_POST["settings"];

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

Дякую за увагу!


Лис 16 2016

За допомогою умовних операторів if, else, elseif можна скласти логічну конструкцію та написати сценарій для чого завгодно. Якщо ми переведемо назви цих умовних операторів, то відразу зрозуміємо про що йдеться.

Ifперекладається як «якщо»,

Elseперекладається як «інакше»,

Логіка конструкції умовних операторів проста, з такою логікою ми стикаємося у житті щодня.

Ну, наприклад, такий вислів:

Якщо увімкнути світло,
То буде ясно.
Інакше
Буде темно.

Слова "якщо" та "інакше" якраз і є умовними операторами.

У мові програмування те саме, але умови та події ми встановлюємо самі, використовуючи умовні оператори, як творці наших ідей.

якщо (умова вірна) (
відбувається якась дія;
}
інакше, якщо умова не вірна (
відбувається інша дія;
}

Синтаксис PHP буде виглядати так:

if (умова вірна) (
Виконується певна дія;
}
else (
Виконується інша дія, якщо умова не вірна;
}
?>

Ближче до практики.

Пишемо сценарій для кнопки за допомогою умовних операторів.

В папці Open Server -> domainsстворимо папку і назвемо її, наприклад, lesson3.local.

У редакторі створюємо файл index.php(синтаксис виставляємо PHP) та зберігаємо його в папку lesson3.local.

І напишемо просту HTMLкнопку:




charset = "utf-8" >
<span>Конструкція if else</span>


action ="" method ="POST" >



Для атрибуту методу тезі formми поставили значення POST. Це означає, що дані форми будуть надсилатися методом POST. Докладніше про методи передачі ми поговоримо в наступних уроках. Що таке actionтеж поки не морочіться.

Якщо ми відкриємо index.phpчерез OpenServer, то у нас з'явиться просто кнопка, але поки що не працює.

Ну, а тепер пишемо сам сценарій.

Допустимо, ми хочемо, щоб при натисканні на кнопку з'являлася фраза «Ви натиснули кнопку».

Логічно це виглядатиме так:

Якщо (кнопка натиснута)(
Виводимо фразу "Ви натиснули на кнопку";
}

Наближемо вираз до мови PHP, використовуючи умовні оператори:

if (кнопка натиснута) (
Виводиться фраза"Ви натиснули на кнопку";
}
?>

А тепер під HTML пишемо сам код PHP:

if (isset ($_POST["but"]));
echo "Ви натиснули на кнопку";
}
?>

Якщо цей код перекласти з мови PHP на російську, то це буде виглядати так:

Якщо (встановлений (метод форми POST [ кнопки з ім'ям 'but'])){
Виводиться фраза "Ви натиснули на кнопку";
}

А якщо зовсім російською, то

Якщо ці форми були надіслані методом POST при натисканні на кнопку з ім'ям but,
то користувач побачить фразу "Ви натиснули кнопку".

Приблизно так мусить мислити програміст під час написання сценарію.

Будьте уважні, всі лапки та дужки мають бути закриті.

Пишемо сценарій для двох кнопок.

Сценарій буде такий:

Якщо ми натискаємо кнопку1,
Ми бачимо повідомлення «Ви натиснули кнопку1».
Або ж, якщо ми натиснули кнопку2,
Ми побачимо повідомлення «Ви натиснули на кнопку2».




charset = "utf-8" >
<span>Сценарій для двох кнопок</span>


action ="" method ="POST" >





if (isset ($_POST ["but1"])))(
echo "Ви натиснули на кнопку1";
}
elseif (isset ($_POST [ "but2" ])))(
echo "Ви натиснули на кнопку2";
}
?>

З кнопками я думаю ви розібралися. Так можна написати сценарії і для трьох кнопок, і для 10-ти…

Пишемо сценарій привітання на ім'я.

Сценарій такий: користувач вводить своє ім'я у віконце, і при натисканні на кнопку з'являється фраза привітання.

Отже, спочатку пишемо HTML форму.




charset = "utf-8" >
<span>Конструкція if else</span>


action ="" method ="POST" >

Ваше ім'я


type ="submit" name ="submit" value ="(!LANG:Надіслати" >!}




Спочатку ми повинні створитиь змінну $ name, в ній ми помістимо ім'я, яке введе користувач.

$name=$_POST ["name"];

А потім під формою HTMLми напишемо вже знайому нам конструкцію, використовуючи умовний оператор if:

$name=$_POST ["name"];
if (isset ($_POST ["submit" ]))(
echo "Привіт" ." " .$name ;
}
?>

Пишемо найпростіший сценарій авторизації.

Припустимо, у нас є лише два користувача: Вася та Петя. Решту користувачів система не знає.

Якщо ми введемо ім'я Вася,
то з'явиться фраза "Привіт Вася".
Або ж, якщо ми введемо ім'я Петя,
то з'явиться фраза "Привіт Петя".
Інакше, якщо ми нічого не введемо, або введемо інше ім'я,
то з'явиться фраза "Привіт гість".




charset = "utf-8" >
<span>Проста авторизація</span>


action ="" method ="POST" >

Ваше ім'я


type ="submit" name ="submit" value ="(!LANG:Увійти" >!}





$name = $_POST ["name"];
if ($name = = "Вася") (
echo "Привіт" ." " .$name;
}
elseif ($name = = "Петя") (
echo "Привіт" ." " .$name ;
}
else (
echo "Привіт гість" ;
}
?>

Ну і наостанок, заодно згадайте:

Сценарій привітання залежно від часу.

$hour = (int)strftime ("% H");
$welcome = " "; // Ініціалізуємо змінну для привітання
if ($hour > 0 && $hour<= 6 )
$welcome = "Добраніч!" ;
elseif ($hour > 6 && $hour<= 12 )
$welcome = "Доброго ранку!" ;
elseif ($hour > 12 && $hour<= 18 )
$welcome = "Добрий день!" ;
elseif ($hour > 18 && $hour<= 23 )
$welcome = "Добрий вечір!" ;
else $welcome = "Добрий вечір!" ;
$header = "$welcome Ласкаво просимо на наш сайт!";
?>



charset = "utf-8">
<span>Час


<?php echo $header ?>



Таким чином, можна вигадати безліч сценаріїв, використовуючи умовні оператори if, else, elseif.Так що, потренуйтеся, раджу вам набирати код руками, а не копіювати його, так ви швидше освоїте мову PHP.

© 2022 androidas.ru - Все про Android