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>
●ブラウザーの表示
ブラウザーの改行は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";
そこで特殊文字である「\」の前にエスケープシーケンス「\」をつけて特殊記号であることを打ち消して記号を表示させます。
echo "\\1,000";
ダブルクォーテーション(")も特殊記号ですので、同じようにエスケープシーケンスを手前に置くことで特殊文字の表示を可能にしています。
echo "He said, \"Hello!\"";