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 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。