今回は少し理解が難しいテーマについて書いてみたいと思います。
まずはサンプルプログラムを見てみましょう。
<?php $box = 2; if ($box == 1) { echo "<h1>1でした</h1>"; echo "<p>こんな感じでHTMLをechoしていきます</p>"; } else { echo "<h1>1ではありませんでした</h1>"; echo "<p>こんな感じでHTMLをechoしていきます</p>"; }
これまでの記事を読んでいる方には実行結果に特に違和感は無いと思います。
あえて言うならば、echoの中にh1タグや、pタグなどのHTMLのタグが
含まれていることぐらいでしょうか。
h1タグをechoしてあげると、通常のHTML同様、見出しとして表示されます。
今は2行分のHTMLをechoしているので特に面倒臭さはありませんが、
これが20行ぐらいのHTMLをechoするとなると、いちいちechoと書くのが
面倒になります。
そこで次のサンプルプログラムを見てみましょう。
<?php $box = 2; if ($box == 1) { ?> <h1>1でした</h1> <p>こんな感じでHTMLをechoしていきます</p> <?php } else { ?> <h1>1ではありませんでした</h1> <p>こんな感じでHTMLをechoしていきます</p> <?php }
実行結果としては1つ目のサンプルプログラムと同じです。
ただし、HTMLの部分に注目してもらうと、違いがわかるかと思います。
2つめのサンプルプログラムではechoをしていないのです。
上図にある通り、PHPでは 「?>」を書くことで、PHPのプログラムを終了させることができます。
ただし、終了後はHTMLのプログラムを書くことができます。
そして、またPHPのプログラムを再開させることができます。
かなり複雑ですが、
を繰り返すことで、今までいちいちechoで書いていたHTMLを
echo無しでシンプルなHTMLとして記述することができます。
この時、if文の途中でPHPを終了させても、if文の影響範囲({ } の範囲)
は有効となります。
つまり、$box == 1の時しか 「1でした」は表示されません。
かなり複雑ですがこういうものもあるんだと覚えておくといつか
役に立つ時がくるでしょう。