アプリ版:「スタンプのみでお礼する」機能のリリースについて

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文が良くわかっていないからだと思うのですが、このソースが書いてあった書籍を見ても良くわかりませんでした。

初歩的な質問なのかもしれませんが、良ければ教えてください。お願いします。

A 回答 (4件)

<?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. …

蛇足ですが、この命令は読みにくいので、私だったら以下のように書きます。

-----------
if ($link_to_next) {
$pg = $current_page + 1;
echo "<a href=\"?page={$page}>\">[前へ]</a>";
}
    • good
    • 0

構文、機能については挙がっている通りですが、


使いどころとしては、テンプレート化に有用です。
<?php } ?> をたくさん書くよりはたぶん視認性があがります。

ZendFrameworkなんかはこう書いてます。
http://framework.zend.com/manual/ja/zend.view.in …
    • good
    • 0

連投すみません。

#2です。

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

ま、その書籍もそうですが、人によるので、お好みで。
    • good
    • 0

これ↓は、



<?php if ($link_to_next): ?>
<?php endif; ?>

これ↓と 全く 同じ意味。書き方が違うだけ。

<?php if ($link_to_next) { ?>
<?php } ?>

PHPは 同じ事をするにも 何通りかの書き方が出来るのです。

print "
あああ
いいい";

↑と↓も およそ 同じ意味です。↓はヒアドキュメントというもの。

print <<< EOL
あああ
いいい
EOL;
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!