echoやprintを用いてブラウザへ出力する
4.5 echoやprintを用いてブラウザへ出力する
これまでのプログラムでは、Webブラウザへ結果を出力するために「echo」という命令文を利用しました。この命令文を使うとPHPからHTML文書として出力することができます。
4.5.1 Web画面に出力してみよう
Webブラウザへメッセージを出力する場合には、「echo文」の他に「print文」を使うこともできます。
書式:出力命令文
凡例:出力命令文
Webブラウザへ出力する代表的な命令文には「echo文」の他に「print文」があります。echo文とprint文には違いがあり、echo文はカンマで区切ることで複数のメッセージ(文字列)を繋げて表示できますが、print文は1つのメッセージしか表示できません。「凡例:出力命令文」の5行目 は、print文で2つ以上の文字列を連結しているのでエラーになります。この場合はecho文を使いましょう。
単一の文字列を出力する場合は、echo文でもprint文でも違いはありませんので、どちらを使っても構いません。詳しくはこの章のコラム「echo()とprint()の違い」で説明します。
PHPでは文字を扱うには「” “(ダブルクォーテーション)」で囲む場合と「‘ ‘(シングルクォーテーション)」で囲む場合の2つあります。この2つの用途の違いについて次章のコラムで説明します。
では早速、複数のメッセージをWebブラウザに表示するプログラムを作成してみましょう。
複数のメッセージをWebブラウザで表示するプログラム
echo文を利用して、メッセージやHTMLの「タグ」を出力してその結果をWebブラウザで確認してみましょう。
以下のURLからサンプル画像(sampleImg.zip)をダウンロードして、プロジェクト直下にコピーしてください。
■https://kanda-it-school-square.com/?wpdmdl=5071
図 4.5.1 ダウンロードファイルの配置
ソース・フォルダ:myproj_super_intro/ch04
ファイル名 :multiplePrint.php
アクセスURL :http://localhost/myproj_super_intro/ch04/multiplePrint.php
➢ multiplePrint.java
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php echo '■カードを画面に表示します<br>'; print '<hr>'; echo '<img src="../cards/07.png">'; print '<img src="../cards/Jk.png">'; ?> </body> </html>
実行結果
解説
7~10行目ではecho文とprint文を使って、文字列やHTMLタグをPHPから出力させています。echo文はカンマで区切ることで複数のメッセージ(文字列)を結合しても表示できますが、print文は1つのメッセージしか表示できません。
7行目は「■カードを画面に表示します」の文章と、改行の「<br>タグ」を画面に出力させています。
7、8行目では文字列を括るときは「’ (シングルクォーテーション)」の代わりに「”(ダブルクォーテーション)」を使ってもよいです。
8行目は横向きの罫線を引く「<hr>タグ」を画面に出力させています。
9行目の「<img>タグ」のsrc属性には表示したい画像のある位置を相対パス(実行ファイルの位置から見てどこにあるか)で指定して出力させています。これは、「multiplePrint.php」の位置から見て画像ファイルは、階層が1つ上に戻った位置「../」のcardsフォルダ内にあることを示しています。
9行目は文字列を「’」で囲み、その文字列の中のHTML属性を「”」で囲んでいます。代わりに9行目を「 echo “<img src=’../cards/07.png’>”; 」のように文字列を「”」で囲み、その文字列の中のHTML属性を「’」を用いて記述することもできます。つまり、引用符が重複しないように「”」中では「’」を、もしくは「’」の中では「”」を用いて記述することができます。詳しくは次のコラム「シングルクォーテーションとダブルクォーテーションの違い」で説明します。
固定の文章やHTMLタグを出力するだけなら、わざわざPHPを使う必要はありません。しかし、画像をランダムに表示させたり、画面デザインをある条件で変化させるなどの動的処理を組み込む場合はPHPで記述する必要があります。
まだ動的な処理のイメージを掴むのは難しいと思いますが、この後の章で学習していきますので安心して進んでください。
echo()とprint()の違いecho()文とprint()文は「文字列を出力する」というほぼ同じ動作をしますが、以下に違いを簡略に示します。
■単一の文字列(メッセージ)場合
一つの文字列を指定する場合は、echo()文もしくはprint()文のどちらも使うことができます。
print “Hello KandaITSchool”; //正しい構文です
echo “Hello KandaITSchool”; //正しい構文です
■文字列(メッセージ)の複数指定の場合
echo()はカンマ「,」区切りで複数の文字列を指定できるのに対し、print()はできません。
print “Message1”, “Message2”; // この構文はエラーが出ます
echo “Message1”, “Message2”; //正しい構文です
■返り値の有無
print()は結果を返しますが、echo()は返しません。
$value = print ” Hello KandaITSchool “; // 正しい構文です$value = echo ” Hello KandaITSchool “; // この構文はエラーが出ます