• ベストアンサー

サンプルソースのコロンの意味

PHP初心者です。 質問させてください。 某書籍に以下のようなソースが記載されていました。 <?php if ($link_to_next): ?> <a href="?page=<?php echo ($current_page + 1); ?>">[前へ]</a> <?php endif; ?> 内容は理解できます。(boolean変数$link_to_nextがtrueならば、テキスト<a href...>...</a>を表示する) ただ、"if ($link_to_next):" のコンマ(:)はなぜつける必要があるのでしょうか? PHPのif文が良くわかっていないからだと思うのですが、このソースが書いてあった書籍を見ても良くわかりませんでした。 初歩的な質問なのかもしれませんが、良ければ教えてください。お願いします。

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

  • ベストアンサー
noname#111181
noname#111181
回答No.1

<?php if ($link_to_next): ?> <a href="?page=<?php echo ($current_page + 1); ?>">[前へ]</a> <?php endif; ?> それは、if文の例外的な使い方です。 1行目のif文 <?php if ($link_to_next): ?> において $link_to_nextが真ならば、3行目のendif文 <?php endif; ?> までの間(質問の例では2行目になる)を実行せよ、という意味になります。 下記を参考にしてください。 http://jp2.php.net/manual/ja/control-structures.alternative-syntax.php 蛇足ですが、この命令は読みにくいので、私だったら以下のように書きます。 ----------- if ($link_to_next) { $pg = $current_page + 1; echo "<a href=\"?page={$page}>\">[前へ]</a>"; }

その他の回答 (3)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.4

構文、機能については挙がっている通りですが、 使いどころとしては、テンプレート化に有用です。 <?php } ?> をたくさん書くよりはたぶん視認性があがります。 ZendFrameworkなんかはこう書いてます。 http://framework.zend.com/manual/ja/zend.view.introduction.html

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

連投すみません。#2です。 #1さんのご指摘どおりなのですが、 HTMLをベースとして、その中にPHPのスクリプトを書く「初期の頃のPHPらしい書き方」は、 大きなものになってくると、可読性が極めて悪いので、やめたほうがいいです。 ま、その書籍もそうですが、人によるので、お好みで。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

これ↓は、 <?php if ($link_to_next): ?> <?php endif; ?> これ↓と 全く 同じ意味。書き方が違うだけ。 <?php if ($link_to_next) { ?> <?php } ?> PHPは 同じ事をするにも 何通りかの書き方が出来るのです。 print " あああ いいい"; ↑と↓も およそ 同じ意味です。↓はヒアドキュメントというもの。 print <<< EOL あああ いいい EOL;

関連するQ&A