phpには色々な値の表示方法があり、その用途は様々ですが、今回は以下の5つの値の表示方法について解説します。
- echo
- print_r
- var_dump
- var_export
これら5つの表示方法について簡単に説明すると、
echo と print は、ただ単に文字列を出力するのに対し、 print_r と var_dump 、 var_export は、主にデバッグをする際に使用します。
しかし、これら5つの表示方法のどれをどんな時に使えば良いかわかりませんよね?
この記事では
「echo」「print」「print_r」「var_dump」「var_export」 それぞれの用途や違いについて、初心者の方に向けて優しく解説していきます。
echo の文字列の出力
echoは、HTMLに文字列を出力する場合に使用し、echo の後ろに記述された変数や文字列を表示します。
文字列を指定する場合は、「"」(ダブルクォーテーション)または「'」(シングルクォーテーション) で囲みます。
1つの値を出力する場合
1つの値を出力する場合は、echo の後ろにその値を記述します。
構文
例文
複数の値を出力する場合
複数の値を出力する場合は、echoの後ろに「,」(カンマ)で区切って記述します。
</>php<?php echo "こんにちは"; echo "<br>";
echo "今日は" , "良い" , "天気ですね"; ?>
カンマで区切った複数の文字列が、一つの文章として表示されているのがわかると思います。
また、"<br>"などのHTMLタグを認識するのでウェブブラウザで改行することも可能です。
変数と文字列を出力する場合
変数と文字列を一緒に出力することもできます。
「今日は良い天気ですね」を変数 str に代入して、文字列「こんにちは」と一緒に出力してみます。
</>php<?php
$str = "今日は良い天気ですね";
echo "こんにちは","<br>",$str;
?>
結果は先程と同じですね。
もう少し詳しく
- echoは関数ではなく言語構造なので、引数を ()「カッコ」で括る必要はありません。
- () を使用できるのは値が1つの場合のみです。(でも、あまりオススメしません、、)
- 戻り値はありません。
print の文字列の出力
printも、echoと同じく引数に指定した1つの文字列を出力することができます。
こちらも関数ではないので、カッコをつける必要はありませんが、echoと違って単一の引数のみを受け付けるので、「,」(カンマ)で複数の値を同時に出力することはできません。
また、戻り値として常に1が返されます。
1つの値を出力する場合
構文
例文
複数の値を出力する場合
カンマで区切って複数の値を出力することはできませんが、「.」結合演算子を使用することで複数の値を結合し、一つの文字列を作成した上で出力することができます。
これはechoも同様です。
</>php<?php $str = "良い天気";
print "こんにちは";
print "<br>";
print "今日は" . $str . "ですね"; ?>
式として使用する場合
また、printはechoと違って式として扱うこともできるので、以下のようにif文の条件式の中に記述して使用することができます。
</>php <?phif( print " " ){ print "printは式で使えます!"; } else { print "printは式で使えません!"; } ?>
決して実用的とは言えませんが、式の中で使用できることは確認できました。
echoとprintの違いは?
echoもprintも文字列を出力するという点では共通していますが、両者の違いについてもう一度おさらいしてみましょう。
引数 | 文or式 | 戻り値 | 式で使用 | |
echo | 複数可 | 文 | なし | × |
1つのみ※ | 式 | 1 | ○ |
※但し、「.」結合演算子を使用することで複数の値を結合して出力可。
大きな違いは戻り値の有無ですが、単一の値を出力する場合は特に違いはありません。
print_r の文字列の出力
print_r や var_dump 、var_export は、デバッグの際に変数の詳細を確認するために使用する関数です。
データ型や配列の詳細、エラー原因を調べる際に、これらの関数を使用することは多いのではないでしょうか。
中でもprint_r は、指定した変数の情報をわかりやすく出力する際に使用します。
構文
例文
用途としては、配列の場合は「キーと値だけを確認したい」時など、結果を簡易的に確認する際に使用します。
それでは実際に確認してみましょう。
</>php <?php$array = array(
"key1" => "value1",
"key2" => "value2",
"key3" => "value3",
);
print_r($array); ?>
配列の中に入った3つそれぞれの「キー」と「値」を表示することができました。
もう少し詳しく
ちなみに、第二引数にtrueを指定すると、出力せずに戻り値を受け取ることができます。
これによって変数に格納することができ、ログファイルに書き出すと言った用途で使用することが可能です。
var_dump と var_export
デバッグ用の文字の出力方法として、print_r の他に「var_dump」と「var_export」があります。
var_dump の使い方
var_dumpは、変数の詳細な情報を出力する際に使用する関数です。
先ほどのprint_rと比べ、例えば配列の中身を調べた場合は「キー」と「値」以外にもより詳細なデータを出力します。
構文
例文
では、実際に出力してみましょう。
先ほど説明したprint_rとの違いがわかりやすいように、同じ変数をvar_dumpで出力してみます。
</>php <?php$array = array(
"key1" => "value1",
"key2" => "value2",
"key3" => "value3",
);
var_dump($array); ?>
何やら長ったらしくて、難しそうな文字列が出力されましたね。
でも慣れると、とても便利でわかりやすい文章なんです。一部抜粋して、解説すると以下の通りです。
上記は、array(配列)の場合の解説ですが、文字列や数値の場合はまた違った形で出力されます。
var_export の使い方
var_exportは、変数のデータ構造を出力する関数です。
var_dumpと似ていますが、第二引数にtrueを指定することで、有効なPHPコードとして返り値を取得することが出来ます。
構文
例文
では実際に見てみましょう。
違いがわかりやすいように先ほどと中身の同じ変数を出力してみます。
</>php <?php$array = array(
"key1" => "value1",
"key2" => "value2",
"key3" => "value3",
);
var_export($array);
?>
出力結果だけ見ると、print_rに似ていますね。
print_r と var_dump と var_exportの違い
文字列を出力する関数の中でも、デバッグの際に使用する関数としてprint_rとvar_dumpとvar_exportの紹介をしましたが、それぞれの違いをもう一度おさらいしてみましょう。
変数の情報 | データ構造 | 返り値 | |
print_r | ○ | × | ○ |
var_dump | ○ | ○ | × |
var_export | ○ | ○ | ○ |
この3つの関数の用途をまとめると、以下のようになります。
- 変数の簡易なデータを確認したい → print_r
- 変数の詳細なデータを確認したい → print_dump
- 変数の情報を代入したい → print_r、var_export
- 変数のデータ構造を知りたい → var_dump、var_export
ちなみに3つの出力結果は以下の通りです。(中身が同じ変数を出力した結果です。)
print_r |
Array ( [key1] => value1 [key2] => value2 [key3] => value3 ) |
var_dump |
array(3) { ["key1"]=> string(6) "value1" ["key2"]=> string(6) "value2" ["key3"]=> string(6) "value3" } |
var_export |
array ( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3', ) |
最後に
いかがでしたでしょうか、今回はphpの基本である文字列の色々な出力方法について解説しました。
phpについて他にも詳しく学習したい方は、下の記事一覧から他の記事もご覧下さい。
php
PHP言語に関する基礎的な構文やデータ型や関数など、詳細な解説やコード例を提供しています。
続きを見る