【PHP】echoの使い方とは?printとの違いなど
◇はじめに
本記事では、PHPの「echo」を使用する上で、シングルクォーテーションとダブルクォーテーションの違いや「print」との違いなど、「echo」に関連するあれこれについて解説していきます。本記事が是非参考になれば幸いです。
◇「echo」とは?
PHP言語において、文字列を出力するための宣言です。echoを使用する事で、ブラウザなどに文字列を表示させることができます。
◇echoの基本的な使い方
使い方は簡単です。
//文字列の場合
echo '文字列';
//変数の値の場合
echo 変数
※echoとの間は必ず半角スペースで区切りましょう。
※echoに限らず、コードの文末にはセミコロン「;」を記述しましょう。
//文字列だけの場合
echo 'Hello World!';
//変数の値を表示する場合
echo $hoge;
//文字列や変数を繋げて表示する場合はドット(.)やカンマ(,)を使用
echo 'Hello World!',$hoge;
ちなみに、上の使用例の文字列の両端に付けているシングルクォーテーション('')はダブルクォーテーション("")に変えても問題なくブラウザに表示されます。以降からはこれらの違いについて触れていきます。
◇シングルクォーテーションとダブルクォーテーションの違い
■シングルクォーテーションの場合
囲まれた文字列はそのままそっくりブラウザに表示されます。
echo 'Hello World!';
↓
ブラウザには「Hello World!」と表示されます。
('')内の文字列に変数を含めてみると、
$hoge = 2020;
echo 'hello World! $hoge';
↓
ブラウザには「hello World! $hoge」と表示されます。
シングルクォーテーションの中では、変数は展開されることなくそのままの文字列としてブラウザに表示されてしまいます。変数の他にも、特殊文字である「\n(改行コード)」などもそのまま表示されてしまいます。
$hoge = 2020;
echo 'hello World! \n $hoge';
↓
ブラウザに「hello World! \n $hoge」と表示されます。
■ダブルクォーテーションの場合
それでは、先程シングルクォーテーションでおこなった内容をそのままダブルクォーテーションに替えてみましょう。
echo "Hello World!"
↓
問題なく、ブラウザには「Hello World!」と表示されます。
それでは変数を混ぜた場合、
$hoge = 2020;
echo "hello World! $hoge";
↓
ブラウザに「hello World! 2020」と表示されます。
ダブルクォーテーションで囲めば、変数がきちんと展開されて表示されていることが分かります。
最後に、改行コードを追加した場合、
$hoge = 2020;
echo "hello World! \n $hoge";
↓
ブラウザに「hello World! 2020」と表示されます。「\n」がそのまま表示されることがなくなったと分かります。
ここで、”改行はされないの?”と思った方もいらっしゃるかもしれませんが、PHPファイルは一度HTMLに変換されてからブラウザに表示されるため、PHPの改行コード「\n」ではブラウザ上での改行ではなく、変換後のHTMLのソースが改行されるだけに留まります。ブラウザ上で改行をしたいばあいはHTMLの改行タグ「<br/>」を挿入しましょう。
$hoge = 2020;
echo "hello World! \n <br/> $hoge";
↓
ブラウザには
2020
ちなみに、このHTMLタグであればシングルクォーテーションでもダブルクォーテーションでもブラウザに反映されます。
◇echoとprintの違い
ここで、printの話をします。printもまた、echoと同じく文字列を出力するものになります。では一体何が違うのでしょうか。
◇echoの場合
複数の文字列をカンマ(,)で区切ることにより出力させることができます。
echo 'H','E','L','L','O';
↓
ブラウザに「HELLO」と表示されます。
printの場合
print 'H','E','L','L','O';
↓
エラーとなり出力されません。
このように、echoとprintの主な違いは複数の文字列出力が可能かどうかの違いになります。複数ではない一つの出力であればprintを使うことが可能です。
また、printには「戻り値」があります。戻り値とは処理をおこなった後に返ってくる値の事で、printが文字列の出力をおこなったあとに、元々print式を記述していた場所に「1」という数値を返します。
$test = print 'Hello';
print $test;
上のコードでは、Helloと出力した後、$testに「1」が代入され、その後$testの値を出力しています。結果、ブラウザには「Hello1」と表示されました。
◇まとめ
■echo
・複数の文字列を出力できる
・特殊文字や変数を展開する場合はダブルクォーテーション("")で囲む
・ひとつの文字列を表示できる
・戻り値として「1」が返ってくる
簡単な文字列出力であれば、どちらでも問題はありません。しかし、どちらかというとechoの方が戻り値などの処理が多いprintより処理速度が少々早いようです。違いを把握したうえで、その場の用途などによって使い分けしていきましょう。
◇おわりに
いかがでしたでしょうか。
「echo」はとても基本的であり使用度の高いものですので、関連する知識を理解しておくと良いでしょう。この記事が少しでも参考になっていれば幸いです。最後まで読んでいただきありがとうございました。