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.