読者です 読者をやめる 読者になる 読者になる

foreachの制御構造に関する別の構文

Twittersymfonyの話が出ていたので、ドキュメント読んでみようと、chmファイルを落として読み始めてみた。
http://code.google.com/p/symfony-doc-ja/


まだまだ、肝心のsymfonyまで話が進んでないけど、その途中でちょっと見慣れない記述を見つけた。

    <table>
      <tr><th>Date</th><th>Title</th></tr>
    <?php foreach ($posts as $post): ?>
      <tr>
        <td><?php echo $post['date'] ?></td>
        <td><?php echo $post['title'] ?></td>
      </tr>
    <?php endforeach; ?>
    </table>

(前後省略)

endforeach?
こーいう書き方が出来るのを知らなかったので、ドキュメントを見てみた。
php 制御構造 foreach
http://jp.php.net/manual/ja/control-structures.foreach.php
ところが、このforeachについてのドキュメント内にendforeachについての記述がまったくない。
whileのページにはendwhileについて載ってるんですけどね。


制御構造に関する別の構文のところに説明が載ってました。
http://jp.php.net/manual/ja/control-structures.alternative-syntax.php
確かに、htmlに埋め込むにはこちらの方がすっきりすると思う。
今まで、こんな風に書いてました。

    <table>
      <tr><th>Date</th><th>Title</th></tr>
    <?php foreach ($posts as $post) { ?>
      <tr>
        <td><?php echo $post['date'] ?></td>
        <td><?php echo $post['title'] ?></td>
      </tr>
    <?php } ?>
    </table>

ifとかと入れ子になるとわかりにくい。。。


いまでは、Smartyがメインなので、html埋め込みとかよっぽどでないとやらないんですけどね。