【PHP】echoで画面にHTMLやテキスト出力する方法を解説!printとの違いも解説!
ブラウザに出力するには、echoまたはprintを使用します。どちらも画面へのデータ出力に使用されます。
ここでは、echoの使い方と、printとの違いをわかりやすく解説していきます。
echoとは
echoは画面にデータ(HTMLやテキスト)を出力する事ができます。
出力をするたびに使われてますのでよく見る関数だと思います。
echoは引数に指定した文字列を出力する関数です。何らかの値を出力したい場合に使われます。
カンマ区切りで複数の文字列を指定した場合は、それらの文字列が続けて出力されます。
echoの使い方
文字列を画面に出力する方法
文字列を画面に出力するにはecho関数に出力したい値を””(ダブルクォーテーション)で囲むことで文字列を画面へ出力することができます。
例
1 2 3 4 |
<?php echo "こんにちは"; ?> |
出力結果
“こんにちは
また、複数に区切って出力することも可能です。
例
1 2 3 4 5 |
<?php echo "こんにちは 。", "私の名前は", "田中", "です。 ", "よろしくお願いします。"; ?> |
出力結果
こんにちは。私のお名前は田中です。よろしくお願いします。
このようにカンマで区切ることで、複数に区切って出力することができます。
HTMLコードを出力する方法
HTMLコードを出力するにはHTMLコードを”(ダブルクォーテーション)で囲むことで出力することができます。
例
1 2 3 4 5 6 7 8 9 10 11 |
<?php echo "<div>"; echo " <ul>"; echo " <li>ここはHTMLタグも出力されます。</li>"; echo " <li>ここはHTMLタグも出力されます。</li>"; echo " </ul>"; echo "</div>"; ?> |
出力結果
<div> <ul> <li>ここはHTMLタグも出力されます。</li> <li>ここはHTMLタグも出力されます。</li> </ul></div>
このようにダブルクォーテーションで囲むことで、HTMLコードを出力することができます。
変数を出力する方法
変数を出力するには変数に格納した値をecho()関数で指定すると変数を出力することができます。
例
1 2 3 4 5 6 7 8 |
<?php $a = "こんにちは"; $b = 1 echo $a; echo $b; ?> |
出力結果
こんにちは1
冒頭でも言いましたが、カンマで区切ることで複数の変数をつなげて出力することができます。
例
1 2 3 4 5 6 7 |
<?php $a = "こんにちは。"; $b = "お疲れ様です。" echo "$a.$b"; ?> |
出力結果
“
こんにちは。お疲れ様です。
echoとprintのちがい
早速結論になりますが、echoとprintの最も大きなちがいは式( expression )であるかどうかです。
PHPの仕様としては「echoは式ではなく、printは式である。」ということになっているそうです。
つまり
echoは文( statement )。
他の式や文の一部として使うことができない。戻り値を持たない。
printは式( expression )。
他の式や文の一部として使うことができる。戻り値を持っていて、それはいつも1を返す 。
とのことです。
文と式の区別でいうと、たとえば、わかりやすい例はif文です。
echoをif文の中に入れることはできませんが printの場合は可能です。
・echoの場合: ×
Parse errorになる
1 2 3 |
if (echo 5) { print 'echoは戻り値を持つ式です。'; } |
・printの場合: ○
問題なく動作する
1 2 3 |
if (print 5) { print 'ptintは戻り値を持つ式です。'; } |
print方は式なので、if文にかぎらず他の式の中に組み込むことができます。
・printの場合: ○
他の式や文の要素として利用できます。
1 2 |
$result = 10 + (print 3) + (print FALSE); print $result; // => 12 |
・echoの場合: ×
Parse errorになります
1 |
$result = (echo 3); // × エラー Parse error |
(これらはあくまでも実行の可否を示すための例であり、実用性はありません)
ちなみに、 print の戻り値は必ず 1 になることに注意が必要です。
例えば、printでfalseとした場合でもその戻り値は 1 になります。
このあたりは Ruby の p や puts のようなふるまいを期待すると裏切られます。
そうなるとechoには特段メリットが無いようにも思えますが、echoにできてprintにはできないことがあります。
それは「複数の引数を受け取ること」です。
echoは、複数の引数を受け取ることができますが print は単一の引数しか受け取れません。
・echoの場合: ○
問題なく動作します
1 |
echo 3, 4, 5; // => 345 |
・printの場合: ×
Parse errorになります
1 |
print 3, 4, 5; // × エラー Parse error |
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。