Alternative syntax for control structures
Оновлено: 11.05.2023
PHP пропонує альтернативний синтаксис для деяких керуючих структур, а саме: if, while, for, foreach та switch. У кожному випадку базова форма альтернативного синтаксису полягає у заміні відкриваючої дужки на двокрапку (:) і закриваючої дужки на endif;, endwhile;, endfor;, endforeach; або endswitch; відповідно.
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>
У наведеному вище прикладі HTML-блок "A дорівнює 5" вкладено в інструкцію if, написану в альтернативному синтаксисі. HTML-блок буде відображено лише у тому випадку, якщо $a дорівнює 5.
Альтернативний синтаксис застосовується також до else та elseif. Нижче наведено структуру if з elseif та else в альтернативному форматі:
<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>
Зауважте:
Змішування синтаксисів в одному блоці управління не підтримується.
Будь-який вивід (включно з пробілами) між оператором switch і першим випадком призведе до синтаксичної помилки. Наприклад, це невірно:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Хоча це правильно, оскільки останній новий рядок після оператора switch вважається частиною закриваючої ?> і, отже, нічого не виводиться між switch і регістром:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Дивіться також приклади з while, for та if.