2011年02月19日

print と echo の違い

PHPを勉強し始めて、必ず最初にあたる疑問。。

printとechoの違いです。
この疑問について調べた限り述べようと思います。

まず、二つとも「表示する」働きをするものです。
ですので、どちらを使っても同じです。
好みによる使い分けになると思います。

但し、微細な違いがあります。


一つ目に、返り値があるかどうか。
printには返り値があり、
echoには返り値がありません。

いったい、何が返ってくるかというと、「intの 1 」が返ってきます。
phpでいえば、1というのはtrueに置き換えられるため、表示できたかどうかわかり、

$gyo += print "sample";
$gyo += print "test";

というように書けば、printが実行された回数が得られます。
。。。が、特に有効な利用方法は知りません。

しかし、その返り値があることによって、微妙に処理に時間がかかります。

つまり、返り値がないechoの方が、printより処理が早くなります。
とはいっても、昨今のPCでは微妙な微妙な違いです。

2つ目の違い。
printは一つの文字列を表示できるのに対し、
echoは「,(カンマ)」で区切ることによって、一つ以上の文字列を表示できます。

つまり、
print "printsample";
echo "echo","sample";

といった違いになります。
これは大きな違いだと一瞬思いますが、実はこれも微細な違いになります。
なぜなら、printも一つ以上の文字列を表示する方法が別にあるからです。
それは「.(ピリオド)」文字列連結演算子を使う方法です。

つまり、
print "print"."sample";

と、書けば、二つの文字列を連結して表示するとった動きになります。
もちらん、これはechoにも同じことができます。

ですので、一つ以上の文字列を表示する際、
printは「.(ピリオド)」のみが使え、
echoは「.(ピリオド)」と「,(カンマ)」の両方が使えるのです。

これは、echoでは、「.(ピリオド)」と「,(カンマ)」を打ち間違えても大丈夫だと意味しています。
(PHPでは、このほかにも、多少のミスをカバーしてくれますが、これはまた別の話)


(あくまで個人の)推測するに、
最初にprintがあり、
それをよりよく、より速くするためにechoが作られたのだと思います。

結論、
printとechoはほぼ同じものであるが、
個人的には、echoを使ったほうが、若干メリットがあるため、
これからも、echoを使います。

posted by hikaru at 15:52| Comment(0) | PHP | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。