「switch(): /* xxx */ endswitch;」のときにでてくるParseError(Bladeディレクティブ)
PHPのスクリプトブロック(<?php /* ... */ ?>)だとエラーなので、その対応
作成日:2023-09-22, 更新日:2024-03-07
出力されたエラー
ParseError syntax error, unexpected T_INLINE_HTML "", expecting "endswitch" or "case" or "default"
ソース
<?php switch( $exmaple ): ?> <?php case 1: ?> a <?php break; ?> <?php case 2: ?> b <?php break; ?> <?php endswitch; ?>
原因
「switch」と「case」の間に余計な処理が入っているという扱いっぽい
上記の場合だと「switch」と「case」の間に「改行が出力されている」という扱いでエラーになっているらしい
対応
「<?php switch( $exmaple ): ?><?php case 1: ?>」を一つにまとめて「「<?php switch( $exmaple ): ?> case 1: ?>」」とすれば良いっぽい
…ただ…好きになれない
<?php switch( $exmaple ): case 1: ?> a <?php break; ?> <?php case 2: ?> b <?php break; ?> <?php endswitch; ?>
こんな記述するなら…使わずに別のアプローチをしたほうが良いかなぁ…
laravelの場合 / Bladeディレクティブ
laravelだと下記のようにすれば対応可能
@switch( $exmaple ) {{-- コメント --}} @case (1) a @break {{-- コメント --}} @case (2) b @break @endswitch