PHP入門:echoの使い方

    • このページをはてなブックマークに追加

    公開日:2016年10月18日 最終更新日:2021年10月01日

    PHPプログラミングで文字列を出力する「echo」の使い方について解説します。複数行を表示するのに便利な「ヒアドキュメント」、それから特殊文字の表示方法についても説明します。

    関連記事:初心者のためのPHP入門
    関連記事:PHPの書き方の基本
    関連記事:EclipseでPHPプログラムを実行してみよう!~PHPプログラミング入門~
    関連記事:【PHP資格】PHP技術者認定試験の難易度と勉強時間の目安

    目次

    1. echo文の基本的な使い方

    PHPの「echo」文の基本書式は以下の通りです。

    echo '文字列';

    「echo」に続きブラウザーに出力する文字列をシングルクオーテーション「' '」で囲みます。

    サンプルコードの「Sample.php」をPC上に保存して、動作を確認してみましょう。

    ●Sample.php

    <!DOCTYPE html>
    <html>
    <head>
    <title>PHP test</title>
    </head>
    <body>
    <?php echo '<p>Hello World!</p>'; ?>
    </body>
    </html>

    ブラウザーには「Hello World!」と出力されます。

    ●ブラウザーの表示

    ▲ページトップへ戻る

    2. echo文で文字列を連結する方法

    文字と文字を連結するには、ドット「.」を使います。

    echo '文字列1'.'文字列2';

    ●Sample.php

    <!DOCTYPE html>
    <html>
    <head>
    <title>PHP test</title>
    </head>
    <body>
    <?php
    echo 'Hello '.'World!';
    ?>
    </body>
    </html>

    一つ目の文字列「Hello 」に続き、ドット「.」、二つ目の文字列「World!」を繋げます。

    ●ブラウザーの表示

    ▲ページトップへ戻る

    3. echo文のシングルクオーテーションとダブルクオーテーションの違い

    文字列は「シングルクオーテーション(' ')」だけでなく「ダブルクオーテーション(" ")」で囲むこともできます。

    echo "文字列";

    シングルクオーテーションで文字列を囲んだ場合、囲まれた文字列がそのまま表示されるのに対し、ダブルクオーテーションで文字列を囲むと「変数」や「特殊文字」を使う事ができます。「変数」とは、データを入れておく入れ物で、「$name」のように変数名の頭にドルマーク「$」を付け、プログラムの中で使われます。特殊文字については後述します。

    ●Sample.php

    <!DOCTYPE html>
    <html>
    <head>
    <title>PHP test</title>
    </head>
    <body>
    <?php
    $a = "Hello World!";
    echo '<p>'.'$a'.'</p>';
    echo "<p>"."$a"."</p>";
    ?>
    </body>
    </html>

    変数「$a」には「Hello World!」の文字列が代入されています。echo文で変数「$a」を「シングルクオーテーション」で囲むとブラウザーには「$a」と表示されます。
    「ダブルクオーテーション」で囲まれた変数の場合には、変数の内容である「Hello World!」が出力されます。

    ●ブラウザーの表示

    ▲ページトップへ戻る

    4. 複数行の文字列を表示する

    4.1 改行の方法

    echoを使って以下のようにHTMLコードを複数行にわたって出力してみましょう

    ●Sample2.php

    <!DOCTYPE>
    <html>
    <head>
    <title>PHP test</title>
    </head>
    <body>
    <?php
    echo '氏名:山田太郎'.'<br>';
    echo '住所1:東京都○○町'.'<br>';
    echo '住所2:1-2-3 △△ビルN階'.'<br>';
    ?>
    </body>
    </html>

    ●ブラウザーの表示

    echo1

    ブラウザーの改行はHTMLコードの<br>タグを使って改行されます。

    ●Sample2.phpのソースコード

    <html>
    <head>
    <title>PHP test</title>
    </head>
    <body>
    氏名:山田太郎<br>住所1:東京都○○町<br>住所2:1-2-3 △△ビルN階<br></body>
    </html>

    ブラウザーのボディを右クリックして[ページのソースを表示]でHTMLのソースコードを見てみましょう。「Sample2.php」のechoで出力されたHTMLコードは改行をしていないのが分かります。このコードを分かりやすく「改行」を入れるには、改行の特殊文字「\n」を使います。

    ●Sample2.php

    echo '氏名:山田太郎'.'<br>'."¥n";
    echo '住所1:東京都○○町'.'<br>'."¥n";
    echo '住所2:1-2-3 △△ビルN階'.'<br>'."¥n";

    「Sample2.php」の'<br>'のあとに「."\n"」を追加して下さい。特殊文字は「ダブルクォーテーション」で囲むことに注意して下さい。「シングルクォーテーション」で囲むと改行コードではなく、ブラウザーに「\n」が表示されます。

    ●Sample2.phpのソースコード

    <body>
    氏名:山田太郎<br>
    住所1:東京都○○町<br>
    住所2:1-2-3 △△ビルN階<br>
    </body>

    ソースコードを見てみると改行の特殊文字「"\n"」を入れた「brタグ」の後で改行されます。

    ▲ページトップへ戻る

    4.2 ヒアドキュメントを使用して複数行の表示をする

    特殊文字である改行コードの代わりに「ヒアドキュメント」を利用した文字列の出力方法について説明します。echoを使って何行にもわたるコードを書くこともできますが、「ヒアドキュメント」を使うと少しコードを書くのが楽になります。

    ●ヒアドキュメントの基本書式

    echo <<<END
    HTMLコードをそのまま記述できます<br>
    特殊文字HTMLコードをそのまま記述できます<br>
    END;

    「<<<」の直後の「END」は「終端ID」になります。この文字列は任意ですが、「EOF(End Of File)」、「EOM(End Of Message)」、「EOL(End Of Line)」などがよく使われています。この終端IDの文字列は最初に定義したものと同じID名を最後の行にセミコロン「;」をつけて記述します。タブやスペースを含めてはいけませんので気をつけて下さい。

    先ほどの「Sample2.php」を「ヒアドキュメント」で書き換えてみましょう。

    ●Sample2.php

    echo <<<END
    氏名:山田太郎<br>
    住所1:東京都○○町<br>
    住所2:1-2-3 △△ビルN階<br>
    END;

    文字列を囲む「シングルクォーテーション」や改行の特殊文字それからecho文を複数行にわたって書く必要がありませんので、HTMLコードの出力が楽に書くことができます。

    ▲ページトップへ戻る

    5. エスケープシーケンスとは? ~特殊文字の扱い方~

    5.1 特殊文字とは?

    phpプログラムの中で改行コード「\n」を表示しましたが、「\」マークをブラウザーに表示したいこともあります。「シングルクォーテーション」で囲むとそのまま出力されますが、「ダブルクォーテーション」の中で「\」マークを表示する場合どのようにすればよいのでしょうか?
    プログラムの中で特別な意味を持つ「特殊文字」を表示させるには「エスケープシーケンス(\)」を使って表示させることが出来ます。

    ▲ページトップへ戻る

    5.2 エスケープシーケンスを使って特殊文字を表示させる

    例えば「\1,000」とブラウザーに表示したい場合、以下のコードでは正しく出力されません。

    echo "\1,000";

    echo3

    そこで特殊文字である「\」の前にエスケープシーケンス「\」をつけて特殊記号であることを打ち消して記号を表示させます。

    echo "\\1,000";

    echo4

    ダブルクォーテーション(")も特殊記号ですので、同じようにエスケープシーケンスを手前に置くことで特殊文字の表示を可能にしています。

    echo "He said, \"Hello!\"";

    月額単価70万円〜80万円
    勤務地 東京都 新宿区
    • このページをはてなブックマークに追加

    おすすめ記事

  • ピックアップ

    フリーランス

    【PHP】システムエンジニア★薬局・病院向けシステム開発 NEW

    薬局向けシステム、病院向けシステム開発を担当していただきます。 【具体的な業務内容】 ・クライ...

    フリーランス

    【C#.net/PHP/Python】Webエンジニア★官公庁向けセキュリティパッケージ製品開発及び機能強化 NEW

    月額単価 :70万円〜80万円

    下記の業務をご担当いただきます。 ・Webクローリング及びWebスクレイピングに関する開発業務 ・上記...

    フリーランス

    【PHP/REST API】サーバーサイドエンジニア★薬局利用患者向けスマートフォンアプリの開発 NEW

    アプリで調剤予約・家族のお薬管理できるお薬手帳のサービスや、薬局&ドラッグストア検索・予約サービ...

    フリーランス

    【PHP/AWS/GitHub】バックエンドエンジニア★鍼灸業界向けWebサービスの開発 NEW

    同社は鍼灸業界向けのWebサービスや女性限定鍼灸サロンを展開している企業です。 今回はバックエンドエ...