Урок 6. Додатково про умовні вирази

Конструкція if, як і будь-яка інша умовна конструкція, використовує умовні вирази, наприклад $chislo>=0. Цей вираз істина, якщо змінна $chislo більша або дорівнює нулю. Запитайте будь-яку людину, далеку від програмування, що вийде в результаті виконання виразу 5*5=25. Вона, швидше за все, не дасть вірної відповіді, в той час як будь-який програміст скаже, що значенням цього виразу буде TRUE.

Операнди можна зіставляти не тільки на рівність, а й навпаки – на нерівність. Для цього використовують оператор !(not). Наприклад:

<?php
$b=20;
if($b!=20){
echo ‘змінна $b  не дорівнює 20’;
}
?>

Наступний запис використовується для перевірки існування тієї чи іншої змінної:

<?php
if(!$b){
echo 'Змінної $b не існує';
}
?>

Але, слід зауважити, що для перевірки існування змінних краще використовувати вбудовану функцію php issset(). Синтаксис функції:

boolisset (mixed $b)

Ця функція визначає, чи існує змінна $b. Якщо така змінна є, то isset() виведе значення TRUE, якщо ні – FALSE. Нижче можна подивитися приклад використання функції isset().

<?php
if(isset($b)){
echo‘Така змінна існує’;
}
else{
echo‘Такої змінної не існує’;
}
?>

Функція empty() використовується для того, щоб дізнатися, чи порожнє значення змінної. Іноді змінна в php скрипті може бути встановлена ​​і функція isset() поверне TRUE, але значення змінної буде порожнім. Функція empty() використовується для додаткової перевірки. Формат запису:

boolempty(mixed $b)

Приклад:

<?php
$b=“”;
if(!empty($b)){
echo ‘Значення змінної $b не є пустим’;
}
?>

Увага! У даному умовному виразі ми використовували оператор !.

У PHP також можна об’єднувати умовні вирази в межах однієї конструкції. Умовні вирази можна застосовувати для перевірки на максимум 2 відповідності (наприклад, правий операнд менший або дорівнює лівому). Але на практиці досить часто потрібно перевірити операнди на кілька відповідностей. Наприклад, дізнатися, чи входить число в діапазон чисел від 20 до 100.

Для таких цілей використовують оператори OR , AND і XOR. З їх допомогою умовні вирази можна комбінувати. Давайте розглянемо кожен з них докладно:

Оператор OR повертає значення TRUE, якщо вираз зліва чи справа є істинним.

Оператор AND повертає значення TRUE, якщо істинними одночасно будуть обидва вирази – зліва і справа.

Оператор XOR повертає значення TRUE, якщо істинним є тільки один вираз (ліворуч або праворуч).

Приклад з оператором OR:

<?php
$login= “alex”;
//Тепер перевірим, чи співпадає $login з одним із заданих логінів
if($login==“alex” OR $login==“dmitriy”){
echo ‘Логін правильний’;
}
else{
echo ‘Ви ввели неправильний логін’;
}
?>

У даному прикладі оператор OR використовується для перевірки рядка (логін) на збіг з одним з 2 рядків. Вираз поверне TRUE, якщо буде хоча б один збіг.

Приклад з оператором AND:

<?php
$b=15;
//Перевіряєм, чи входить змінна $b в діапазон 10 < $b < 100
if ($b > 10 AND $b < 100) {
echo‘$b входить в діапазон’;
}
?>

У цьому прикладі вираз поверне значення TRUE тільки в тому випадку, якщо змінна $b одночасно буде більше десяти і менше 100.

Приклад з оператором XOR:

Застосування аналогічне опереатору OR, відрізняється тільки результат порівняння. Оператор XOR зазвичай використовують у складних умовних виразах. Давайте розглянемо приклад:

<?php
$b=10;
//Умова для отримання значения TRUE:
//$b має бути більше 5 і менше 50,
//чи більше 0 і менше 100
if (($b>5 AND $b<50) XOR ($b>0 AND $b<100)) {
echo “Умова виконується”;
}
else{
echo “Умова не виконується”;
}
?>

У цьому прикладі за допомогою оперетор XOR порівнюються 2 вирази: лівий ($b>5 AND $b<50) та правий ($b>0 AND $b<100). Якщо $b=10, то обидва вирази повернуть TRUE, що звичайно ж не підійде для оператора XOR, а це означає, що вся комбінація поверне FALSE. Якщо змінити значення $b на 90, то лівий вираз поверне FALSE, правий - TRUE, а ввесь умовний вираз так само TRUE. Для управління порядком порівняння умовних виразів, як ви можливо помітили в прикладі, їх потрібно брати в круглі дужки.