制御構造に関する別の構文
(PHP 4, PHP 5, PHP 7, PHP 8)
PHPは、いくつかの制御構造、つまり、if、
while、for、
foreach、switch
に関する別の構文を提供します。
各構造において開き波括弧をコロン(:)、閉じ波括弧をそれぞれ
endif;,endwhile;,
endfor;,endforeach;,
endswitch;に変更するのが
別の構文の基本的な形式となります。
上の例では、HTML ブロック "Aは5に等しい" はこの構文で
書かれた if 文の内部で入れ子になっています。
この HTML ブロックは、$a が 5 の場合にのみ表示されます。
この方法は、else や elseif
にも同様に適用することができます。
次の例は、この形式で if 文を elseif
および else とともに使用しています。
注意:
同じブロック内で別の構文を混ぜて使うことはできません。
警告
switch 文と最初の
case の間で何か (空白文字も含む) を出力すると、構文エラーになります。
たとえば、以下のコードは無効です。
一方、以下のコードは有効です。というのも、
switch 文の行末の改行文字は終了タグ
?> の一部と見なされるため、
switch と case
の間では何も出力されないからです。
while、
for、および if に、より多くの例があります。
toxyy ¶4 years ago
I feel compelled to give a more elegant way using heredoc than the other comment:
<ul>
<?php foreach($list as $item): echo
<<<ITEM
<li id="itm-$item[number]">Item $item[name]</li>
ITEM;
endforeach; ?>
</ul>
Which works better with multi line blocks, as you only need one overall php tag.
(please don't omit the closing </li> tag despite it being legal, personal preference)