- 締切済み
"print"と"echo"の違いを教えてください
PHPを始めた初心者なのですが、"print"と"echo"の使い道の違いがよく解りません。 調べてはみましたが、"print"は『文字列を出力する』、"echo"は『1つ以上の文字列を出力する』と書いてあり、意味が良く解りませんでした。 どなたか、ご存知でしたらご指導宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tecinfo
- ベストアンサー率52% (32/61)
"print"と"echo"違いって、あまり意識する必要は無いと思いますが。。 Zend Certificationの試験対策本には、この問題、載ってましたね。 "print"の使い方は int print ( string $arg ) ですので、引数を一つ取ります。 print "This spans\nmultiple lines. The newlines will be\noutput as well."; 返値は常に1が返ります。 "echo"の使い方は void echo ( string $arg1 [, string $...] ) ですので、複数の引数を取ることが可能です。 したがって、 echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10); のように使用することが可能です。 またechoに返値はありません。そのため、echoの方が僅かに速いようです。 あと注意すべきはechoは関数のように動作しないそうです。 // echo は関数のように動作しないので、以下のコードは正しくありません ($some_var) ? echo 'true' : echo 'false'; // しかし、次の例は動作します。 ($some_var) ? print 'true' : print 'false'; // print も言語構造ですが、 // 関数のように動作します。なので、 // このコンテキスト中で使用できます echo $some_var ? 'true': 'false'; // 命令を変更
- php504
- ベストアンサー率42% (926/2160)
普通に使用する分にはほとんど違いはないです。 細かい違いをあげれば echo は ","で複数の出力が出来る echo $a, "test", $b; // OK print $a, "test", $b; // エラー "."で文字列結合するより若干早いようです。 ただし echo ($a, "test", $b); //これはエラー print は関数のように使える(戻り値1を返す) ($a) ? print "true" : print "false"; // OK ($a) ? echo"true" : echo"false"; // エラー echo は短縮形が使える <?= "エコー" ?>
お礼
↑上のお礼回答に追記です。 ポイントの付与をつけ忘れたままで締め切ってしまいました。 恩を仇で返したような感じになってしまい皆様申し訳ありませんm(==)m
手元の本には 機能的な差違はない とある。 さらに デバグ用出力でecho、通常はprint と使い分けておくと後で片方だけ取り除くとか簡単であると書かれている。
お礼
なるほど。。つまり、単に"文字の出力"という面においては差異を気にする必要は無さそうですね! あとは、使う場面での引数の取り方や返り値、使い方などで状況に応じて使い分けしていければと思います☆ これまでの質問の中で一番の良回答ばかりで非常に解り易かったです! SAYKAさん、php504さん、tecinfoさんに大変感謝しております☆ どうもありがとうございました♪♪