PHPで画面にメッセージやデータを表示したいときに欠かせないのがechoです。出力処理の基本として頻繁に使われます。echoの使用は簡単そうで意外とつまずく方も多いのです。
本記事では、PHP echoの使い方や構文、printとの違い、表示されない原因と対処法まで、実例を交えてわかりやすく解説します。
目次
閉じる
1.PHPのechoとは?読み方は?
PHPを使ったプログラミングをしていると、処理結果やメッセージをブラウザに表示したい場面が出てきます。そんな時に便利なのはechoです。読み方は「エコー」です。PHPのechoは、出力処理の基本なので非常によく使われます。
ここではまず、PHPのechoに関する基本を解説します。
PHPのechoの基本構文
echoはPHPで画面に出力するための命令文です。基本構文は次のコード例の通りです。
echo "Hello, world!"; |
このコード例の処理結果は、ブラウザに「Hello, world!」と表示されます。echoに続いて出力したい文字列や変数を指定するだけなので、初心者の方でも簡単に使えるでしょう。
echoを使って文字列を表示するときには、シングルクォート「'」もしくはダブルクォート「"」で囲んでください。複数の文字列をまとめて出力したい場合は、カンマで区切ることも可能です。
echo "こんにちは、", "PHPの世界へようこそ!"; |
PHP以外でもechoが用意されているプログラミング言語がありますが、他のプログラミング言語と同様にPHPでも出力処理の基本として幅広く活用されています。ぜひ使い方をマスターして広く活用してみてください。
PHPのechoは関数ではない?
もしかするとechoをPHPの関数だと理解している人がいるかもしれませんが、echoは関数ではなくPHPが持つ言語構造の一種です。言語構造とはifやwhileなどと同じでプログラミング言語にハードコードされていて初めから存在する要素です。
echoは関数ではないため戻り値は持たず、出力専用の命令文として機能するのです。また、関数ではないため、前述の通り複数の文字列をカンマで区切って渡すことが可能です。ただし、次のように変数に代入はできないので注意してください。
エラーになる例
$text = echo "テキスト"; |
2.PHPにおけるechoとprintの違いとは?
PHPではechoのほかにprintを使ってでも画面出力が可能です。echoとprintは似ているようにも思えますが仕様が異なります。ここでは、echoとprintの違いと、使い分けるポイントについて解説します。
echoとprintの構文の違い
echoとprintはどちらも文字列や変数をブラウザに出力する命令です。一般的にはどちらも括弧を使いません。
echo "Hello, PHP!"; print "Hello, PHP!"; |
このコード例では、echoもprintも同じ処理結果になります。
なお、前章でも触れた通り、echoは複数の値をカンマ区切りで出力可能です。
echo "こんにちは", "世界"; // OK |
一方で、printは複数の値をカンマ区切りで出力はできません。次のコードはエラーになります。
print "こんにちは", "世界"; |
複数の値を出力したい場合にはechoを使うことになるでしょう。
echoとprintの処理速度の違い
echoとprintの処理速度に大きな差はありませんが、echoがわずかに速いです。printが戻り値を返す必要がありますが、echoはその必要がないためです。
多くの場合で影響があるほどの差にはなりませんが、大量の出力処理が連続するような場面では、printよりもechoのほうがパフォーマンスに優れています。
echoとprintの戻り値の違い
printには戻り値がありますが、echoにはありません。printは常に戻り値として1を返す仕様になっていて、戻り値を使った処理を後続で使いたい場合に適しています。
$val = print "Hello"; |
このコード例で$valには1が入っています。
対してechoは戻り値を持たないため、値として扱うことはできません。echoの戻り値を変数に代入しようとすると、構文エラーになるので注意しましょう。
PHPでechoとprintを使い分けるポイント
echoとprintではあまり大きな違いがないため、画面出力したい場合にはechoが使われることが多いです。あえて理由を挙げるとすれば、複数の値を出力できる、書き方がシンプルで扱いやすい、printに比べると処理が速いなどが挙げられます。
一方で、戻り値が必要な場面ではprintを使う必要があります。画面出力したい場合には基本的にはechoを使い、必要な場面だけにprintを使うというのが現実的でしょう。
関連記事
PHPプログラミングとは?将来性や実践で活用できるコード例など初心者にわかりやすく解説
3.PHPにおけるechoの使い方
PHPでechoを使うと、テキスト・変数・HTMLタグ・改行・条件付きの出力など、さまざまな出力に対応可能です。ここでは、PHPにおけるechoの使い方を解説します。
PHPのechoを使って文字列を表示する
もっとも基本的なechoの使い方は、文字列をそのまま表示するものです。
echo "PHPのechoを使って出力しています!"; |
文字列を出力するときには、ダブルクォート「"」かシングルクォート「'」で囲んでください。PHPではどちらも使用可能なのですが、ダブルクォートでは変数が展開され、シングルクォートでは展開されないという違いがありますので気をつけましょう。
$name = "Taro";
|
このコード例では「こんにちは、Taro さん」と表示されます。
$name = "Taro";
|
一方でこのコード例では「こんにちは、$name さん」と表示されます。
PHPのechoを使って変数を出力する
直前の例では、文字列の中にダブルクォートで囲んだ変数が含まれたものを出力する例を紹介しました。もちろん変数だけでもechoで出力可能です。
$greeting = "こんにちは"; echo $greeting; |
このコード例の処理結果は、変数$greetingの中身がそのまま出力され、「こんにちは」と表示されます。
PHPのechoを使ってHTMLを出力する
PHPのechoを使うとHTMLタグもそのまま出力できます。PHPはHTMLと組み合わせて使う機会が多いです。echoにダブルクォート内にHTMLタグを含めることで、PHPから動的にHTMLを生成できます。
コード例
echo "<p>これは段落です。</p>"; |
HTMLの属性値に変数を使いたい場合には、文字列を連結して書くと対応可能です。
$color = "red"; echo "<p style='color: " . $color . ";'>文字の色を変更</p>"; |
ここで気を付けなければならないのは、ダブルクォートの中にダブルクォートを入れると構文エラーになる点です。シングルクォートで囲むか、エスケープシーケンス「\」を使用しましょう。
echo "<input type=\"text\" name=\"username\">"; |
PHPのechoを使って改行を出力する
PHPで出力をする場合に、見た目を整えるために改行したいことがあるはずです。改行で注意しなければいけないのは、出力先がHTMLなのかコンソールなのかによって異なる点です。
改行コードの違い(\nと<br>の違い)
PHPで改行を表すには、2つの方法があります。
\n:ラインフィード(LF)を意味し、サーバー上では改行されますがブラウザ上では反映されません
<br>:HTMLタグの改行なのでブラウザで改行として機能します。
ブラウザでは改行されず、1行で表示される例
echo "1行目\n2行目"; |
ブラウザ上できちんと改行される例
echo "1行目<br>2行目"; |
ブラウザで見た目通りの改行を入れたい場合には、必ず<br>タグを使用してください。
複数行を出力する
複数行のテキストを出力したい場合、次のように書くことで対応可能です。
echo "これは1行目です。<br>"; echo "これは2行目です。<br>"; echo "これは3行目です。<br>"; |
3行表示させたい部分を、3行使ってコードを書くため、わかりやすいコードかもしれません。一方ですっきりとしたコードにしたい場合には、連結演算子「.」を使って、1つのechoで複数行を出力することも可能です。
echo "1行目<br>" . "2行目<br>" . "3行目"; |
なお、複雑な改行処理が必要な場合は、管理しやすいようにテンプレートエンジンやHTMLファイルとの分離を考えましょう。
PHPのechoを使うとどこに出力される?
PHPのechoを使うと、出力された内容はHTMLとしてブラウザに返されるため、基本的にはHTMLドキュメント内に直接挿入されます。表示位置は、PHPコードが書かれている場所とHTML構造によって決まります。
echo出力される場所
echoで出力された内容は、PHPのコードが書かれている場所に挿入されます。たとえば、次のコード例のようにHTML内にechoがあれば、表示もその位置になります。
<body> <h1>タイトル</h1> <?php echo "ここに出力されます"; ?> <footer>フッター</footer> </body> |
この場合、「ここに出力されます」が<h1>の下、<footer>の上に表示されます。
echoの位置に注意
PHPでechoを使用しても、思った通りの場所に出力できない場合があります。特に注意が必要なのは次のような場合です。
header関数の後で出力が行われてしまうと、リダイレクトが失敗する
HTML構造を無視して任意の位置にechoを記述すると、ページレイアウトが崩れる
JavaScriptやCSS内に出力してしまい、構文エラーになる
思い通りの場所に出力するためには、HTMLとPHPの関係を意識しながらプログラミングすることが重要です。
条件分岐とechoを組み合わせる
Webサイトでは条件に応じて異なる内容を表示したい場合には、if文とechoを組み合わせましょう。
$loggedIn = true;
echo "ようこそ、ユーザー様"; } else { echo "ログインしてください"; } |
このコード例のように、条件に応じて表示内容を分けることができます。簡単な文字列だけでなく、もちろんHTMLの出力も可能なので、タグを含めた複雑な構造も出力できます。
if ($isAdmin) { echo "<p>管理者メニューへ</p>"; } |
配列の中身をechoで出力する
PHPではechoだけで配列の要素を出力することはできません。
$data = ["PHP", "JavaScript", "Python"]; echo $data; |
配列は文字列に変換されないため、このコード例のように配列をそのまま出力しようとするとWarningが発生し、「Array」という文字列が出力されてしまいます。
配列に含まれる個別の要素を出力したい場合は、インデックスを指定して出力しましょう。
$data = ["PHP", "JavaScript", "Python"]; echo $data[1]; |
このコード例では「JavaScript」が表示されます。
配列全体を出力したいときは、ループや組み込み関数を使ってください。
foreach ($data as $language) { echo $language . "<br>"; } |
このコード例では、配列の要素を順に表示し、それぞれの要素の間に<br>を出力します。
出力例
PHP JavaScript Python |
関連記事
PHPのdate関数完全ガイド|フォーマット表示からstrtotime・日付比較・WordPress実装まで
4.PHPのechoを使ってみましょう
ここまでechoの使い方や特徴について解説してきました。構文、出力形式、注意点などを理解できたら、次はぜひ実際にPHPでechoを使ってみましょう。実際にコードを書いて動かして試してみることがPHPやプログラミングの学習に役立つはずです。
ここでは初心者でもすぐに試すことができる簡単なサンプルコードを紹介します。実際に手を動かしながら確認してみてください。
例1:入力フォームから名前を取得して表示する
フォームに名前を入力し、その入力値を画面に出力する例です。
<!-- form.php --> <form method="get" action="form.php"> <label for="name">お名前:</label> <input type="text" id="name" name="name"> <input type="submit" value="送信"> </form>
if (isset($_GET["name"])) { $name = htmlspecialchars($_GET["name"]); echo "こんにちは、" . $name . "さん!"; } ?> |
なおこのコード例では、入力された名前が安全に表示されるよう、htmlspecialcharsでエスケープ処理を行っています。
例2:現在の日付と時間を表示する
PHPのdate関数とechoを組み合わせれば、現在の日時を画面に出力できます。
<?php echo "現在の日時:"; echo date("Y年m月d日 H:i:s"); ?> |
予約サイトや更新履歴ページなど、日付と時間の表示をする機会は多いです。画面表示のほかにも、ログファイルへの出力などにも活用可能です。
例3:HTMLテンプレート内に変数を埋め込んで出力する
テンプレート内で変数の値を差し込む例です。HTMLとPHPを組み合わせた実用的な構成で、タイトルや見出しに動的な内容を出力可能です。
<?php $pageTitle = "PHP学習中"; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title><?php echo $pageTitle; ?></title> </head> <body> <h1><?php echo $pageTitle; ?>へようこそ!</h1> </body> </html> |
この方法を活用すれば、Webページの一部だけを動的に切り替えることができます。
5.PHPのechoを使っても表示されない原因と対処方法
echoを使用したのにブラウザに何も表示されない場合は、PHPのコードに何らかの原因があることが考えられます。ここでは、PHPのechoを使っても表示されない原因と対処方法について解説します。
記述ミス・構文エラーをまず疑う
PHPのechoを使っても表示されないときのもっとも基本的な原因は、PHPの記述ミス・構文エラーです。echoを使うときに限ったことではないのですが、次のようなミスが良く見受けられますので、まずはチェックしてみてください。
文末のセミコロン漏れ(例:echo "Hello" ← セミコロンがない)
スペルミス(echoをechhoとかecohと書いてしまう)
「<?php」や「?>」 の書き忘れ
シングルクォートやダブルクォートが片方だけになって不完全な状態
クォートや変数展開の誤りを修正する
PHPではシングルクォートとダブルクォートの使い方によって処理が変わります。変数の中身を展開しようとしているのにシングルクォートを使うと、意図通りに出力されません。
$name = "Taro"; echo 'こんにちは、$nameさん'; |
このコード例では「$nameさん」と表示されてしまいます。
HTML・PHPタグとechoの配置を見直す
PHPは記述する位置によっても出力の挙動が変わってしまいます。特にHTMLと混在させて記述する場合や、出力のタイミングが重要な場合には注意しましょう。
header関数より前にechoがあるとリダイレクトが失敗する
HTML構造の中に不適切な位置でechoを挿入すると、表示が崩れる
<head>内で意図せず文字列を出力してしまい、ブラウザが正しく解釈できなくなる
関連記事
PHPのheader関数を完全解説!リダイレクト・Content-Type・エラー対策まで
PHPリダイレクトの使い方ガイド!header以外・値渡し・条件分岐・時間指定も徹底解説
6.まとめ
本記事では、PHPのechoの基本的な使い方から、printとの違いや実践的な応用方法まで幅広く解説しました。echoを理解し使いこなすことができれば、Web開発なのでできることが広がるはずです。ぜひ本記事のコード例を参考に自身の手で実際にPHPのechoを試してみてください。
本記事が皆様にとって少しでもお役に立てますと幸いです。
「フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。
開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。
単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。
自身に最適なフリーランスエージェントを探したい方はこちらよりご確認いただけます。