switch文の仕様
<?php switch (1): ?> <?php case 1: ?> 1 <?php break ?> <?php case 2: ?> 2 <?php break ?> <?php endswitch ?>
さて、上記のようなプログラムを書いた場合、普通に考えれば1が出力されると思います。ところが結果は、
PHP Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
このようにエラーになります。原因はswitchとcaseの間にスペースがあることらしいのですが、どういうことかというと・・・
Actually this is not bug. You can't have anything between
PHP :: Doc Bug #25667 :: Strange switch-case behaviour
switch()..case.. ever. It's not valid.
いわく、switchとcaseの間にecho " ";してるのと一緒で、バグではないとのことです。ということでテンプレートとかでswitchを使うときは気をつけましょう。
やっぱり<?php xxx ?>って長いな。