elseif/else if

Оновлено: 11.05.2023

elseif, як випливає з назви, є комбінацією if та else. Як і else, він розширює інструкцію if, щоб виконати інший вираз у випадку, якщо початковий вираз if отримає значення false. Однак, на відміну від else, він виконує альтернативний вираз, тільки якщо умовний вираз elseif має значення true. Наприклад, наступний код виведе на екран значення a більше b, a дорівнює b або a менше b:

<?php
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";
}
?>

В одному операторі if може бути декілька elseif. Буде виконано перший вираз elseif (якщо такий є), який отримає значення true. У PHP ви також можете написати 'else if' (з двох слів), і поведінка буде ідентичною поведінці 'elseif' (з одного слова). Синтаксичне значення дещо відрізняється (якщо ви знайомі з C, це та сама поведінка), але суть в тому, що обидва варіанти призведуть до абсолютно однакової поведінки.

Оператор elseif виконується лише тоді, коли попередній вираз if і всі попередні вирази elseif мають значення false, а поточний вираз elseif має значення true.

Зауваження: Зверніть увагу, що elseif і else if будуть вважатися однаковими тільки при використанні фігурних дужок, як у наведеному вище прикладі. Використовуючи двокрапку для визначення умов if/elseif, ви не повинні розділяти else if на два слова, інакше PHP видасть помилку розбору.

<?php

/* Incorrect Method: */
if ($a > $b):
    echo $a." is greater than ".$b;
else if ($a == $b): // Will not compile.
    echo "The above line causes a parse error.";
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;

?>