タグ内の終了セミコロンを省略できます。
例:
<table>
<th><td>Name</td><td>Email</td>
<? foreach ($receivers as $receiver): ?>
<tr>
<td><?= $receiver->name ?></td>
<td><?= $recevier->email ?></td>
</tr>
<? endforeach ?>
</table>
の<? endforeach ?>
後にセミコロンがないことに注意してくださいendforeach
。PHPのドキュメントは 言います:
PHPコードのブロックの終了タグは、自動的にセミコロンを意味します。PHPブロックの最終行をセミコロンで終了する必要はありません。
なぜ私はこのテーマを取り上げるのですか?
現在、私と私の友人は、MVC(model-view-controller)を使用した独自のPHPプロジェクトで働いています。そのため、私はSmarty、MustacheなどのPHPテンプレートエンジンをいくつか評価し、独自の自家製テンプレートエンジンを設計しました。しかし、PHP自体がテンプレートエンジンであることを読んだとき、何かが「クリック」しました。テンプレートエンジンとしてPHPの限定されたサブセットを使用することにチームで同意しないのはなぜですか?そして、ルールを守るために多くのコードレビューがありますか?
このサブセットは次のようになります。
- 短いタグを使用し
<?
、<?=
かつ?>
- 副作用のない単純な式のみを使用し、特に変数を割り当てない
- のみを使用し
if
、foreach
し、include
ステートメントの - 制御構造に代替構文のみを使用する
- タグ内のステートメントはそれぞれ1つだけにしてください
これは、終端のセミコロン、つまりfor <? endforeach ?>
と<? endif ?>
を省略しているコンテキスト<? include("list-contents.php") ?>
です。
ただし、終端のセミコロンを省略することは悪い習慣であることをよく読みます。どうして?それは悪い習慣ですか?
PHPが終端のセミコロンを省略できることで嬉しいです。これにより、テンプレートファイルの視覚的な混乱が最小限に抑えられます。あちこちに小さなPHPフラグメントのみが含まれたHTMLファイルのように見えるはずです。上記の例は私が努力しているものです。
これについてあなたはどう思いますか?あなたがそれに反対しているなら:なぜ?あなたがそれを支持するならば:なぜそれは良い考えでしょうか?セミコロンを省略することに対していくつかのテキストを彼が私に紹介している場合、パートナーに何を伝えればよいですか?
事実、参考資料、またはあなた自身の経験であなたの意見をバックアップしてください。