• ベストアンサー

cakePHPのふとした疑問

最近CakePHPを勉強しはじめて 手始めにチュートリアルから学ぼうと思って 勉強していてふと疑問が浮かんだので質問させていただきます。 普通ならコードを書いてその節を終えるときは <?php echo('こんにちわ'); ?> 上記のような形で終わると思うのですが たまに <?php コード : ?> のように「:」で終わっていたり <?php コード ?> のようにそのまま終わっていたりして なんでこれで動くのかなと疑問に思った次第です。 お分かりになられる方がいらっしゃいましたら 教えていただければありがたいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taba
  • ベストアンサー率61% (349/567)
回答No.2

CakePHPは触ったことがありませんが。 通常のコードとしては、<?php ?>以外の部分にHTMLが書かれていればそのまま出力されます。ですから、そのようなケースはありえます。 例えば、 <?php if($hoge) { ?> <strong>Yes</storng> <?php } else { ?> <strong>No</storng> <? } ?> コロンはif文の別記法として使われます。マニュアルにある例をそのままコピーすると、 <?php if ($a == 5): ?> Aは5に等しい <?php endif; ?> です。 これと同じかも知れません。

shu13
質問者

お礼

解答ありがとうございます。 ひとまず自己解決いたしました。 逆に <?php foreach : ?> ~ <?php endforeach ;?> こうでないといけないのですね。 どうもありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まさに「やってみれば?」の典型的なものかと思うのですが・・・。 基本的には正確を期すならつねにスクリプトの締めには「;」をつける という原則を守るべきかと。 ちなみに「<?php コード ?>」はいけそうですが、「<?php コード : ?>」は 文法的におかしいので無理でしょ

shu13
質問者

お礼

返答ありがとうございます。 CakePHPのチュートリアルの一文を引用します。 <?php foreach ($posts as $post): ?> <tr> <td><?php echo $post['Post']['id']; ?></td> <td> <?php echo $html->link($post['Post']['title'], "/posts/view/".$post['Post']['id']); ?> </td> <td><?php echo $post['Post']['created']; ?></td> </tr> <?php endforeach; ?> ひとまず自己解決いたしました。 お礼が遅くなってしまい申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう