テンプレートタグでのセミコロンの扱い
WordPressもbaserCMSも、テーマのテンプレートファイルを作る際には「テンプレートタグ」と呼ばれるものを組み込んで表示内容を動的に制御します。テンプレートタグの実体はPHPの関数なので、baserCMSでは「関数」という呼び方をするようです。
どちらのテンプレートタグでも
<?php ~ ?>
という書式で記述するのですが、両者の間では微妙な記述の違いがあります。それは
テンプレートタグにおけるセミコロンの扱い
です。同じテンプレートタグでも、
- WordPress……セミコロンをつけて閉じる
- baserCMS……セミコロンをつけないで閉じる
ことが、公式のリファレンスに書かれています。
PHPマニュアルの「命令の分離」の項にはこのように書かれています。
PHP コードの最終行にはセミコロンを記述する必要はありません。
PHPのコード(「文」ともいう)が複数行にわたる場合は、その区切りがコンピュータにわかるよう各行をセミコロンで閉じる必要があります。しかし、テンプレートタグのように1行で終わるものについては、セミコロンで閉じない記述もOKなのです。
baserCMSでは、そうしたPHPの仕様にそってテンプレートタグを記述しているというわけです(余分な文字を打たなくてもいいですし)。
ただ、気をつけないといけないのが、たとえば if 文などで条件分岐させてコードが複数行にわたる場合ですね。この場合、テンプレートタグは複数行にわたるコードの一部となるので、行の最後をセミコロンで閉じないとエラーになってしまいます(たいてい、ページが真っ白になってしまう)。
個人的には、単一行でもセミコロンで閉じるWordPress方式(?)がうっかりミスがなくてよさげかなあ、と思いますがみなさんいかがでしょう?