文字列を出力させる命令 echo と print の違い

PHP

文字列を出力させる命令として、PHPではechoとprint命令があります。

 

このecho命令とprint命令は、文字列を表示させるというもので、ほとんど機能に違いは無いのですが、細かくみていくと、異なる点もあるんです。

 

今回は、PHPの豆知識として、ご紹介したいと思います。

スポンサーリンク



echoはカンマ区切りで複数の文字列を指定できる

例えば、phpファイルに、

と書いて実行してみましょう。

 

このように、

と表示されます。

echoはカンマ区切りで複数の文字列を連結できています。

 

次に、print命令を試してみましょう。

すると、下記のようなエラーが出ます。

 

要約すると、’,’ の部分(カンマ)がsyntax errorになっています。

というエラー文です。

 

syntax errorとは、プログラムの書き方が間違ってますよエラーのことですね。

これは、phpで書かれたプログラムを、コンピューターが理解できない時に起こる構文エラーなんです。

 

これで、printで書かれた文はカンマ区切りはできない、というのがわかりました。

 

echoは関数のようには利用できない

次は、変数$xにecho命令を代入してみましょう。

すると、

‘echo’ の部分でsyntax errorが出ます。

echoは関数のようには使えないみたいです。

 

これをprint文で書き換えてみます。

すると、

上記のように出力されます。

print文ではエラーは起こらず、関数のように利用できましたね。

 

しかし、何やら、文の末尾に’1’がくっついていますね。

これは、次の項目で確かめますのでここはスルーします。

 

printは戻り値として常に1を返す

最後にprint文では、戻り値として1を返すというのを確かめます。

var_dump()という、PHPの関数を使って調べてみます。

var_dumpは型や値などの情報を返してくれる便利な関数です。

 

詳しく知りたい方はこちらをみてみてくださいね。

var_dumpについて詳しく調べる

 

それでは、変数$xに空の文字を入れ、変数の中身をダンプしてみましょう。

結果は、

と出力されました。

 

int型、つまり整数型の数値「1」が$xの中に入っています。

print命令では、返り値に必ず「1」が返されるのがわかりました。

 

これで、先ほどみた

の「1」が返ってきているのがやっと理解できました。

 

また、echoは関数のようには扱えないので、当然エラーとなりますね。

 

まとめ

今まで、printとechoを何気なく使っていましたが、はっきりと違いは分かっていませんでした。

まとめてみたことで、スッキリしましたね。

ちなみに、 echo も print ()をつけてecho(‘値’) 、print(‘値’)のように使えますが、いずれも関数ではないですので気をつけてください。

あくまで、文字列を出力する命令です。

 

まぁこの二つの命令の違いを知っていたところで、あまり役に立つ機会は少ないかもしれないですが、

僕の体験談で、転職活動中に面接で1度だけechoとprintの違いを聞かれたことがあったんですね。

もちろん、その時は答えれませんでした。(笑)

なので、覚えているともしかしたら役に立つかもしれませんね。

 

以上、 PHP雑学でした。

スポンサーリンク