重複の可能性:
参照: PHP の print と echo の比較
PHP のこれら 2 つの関数に大きな根本的な違いはありますか?
出典: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
スピード。両者には違いがありますが、速度的にはどちらを使用しても問題はありません。echo は、本当に核心に取り掛かりたい場合は戻り値を設定しないため、わずかに高速です。
表現。print()
次のことができるという点で、関数のように動作します
$ret = print "Hello World"
。と$ret
なります1
。これは、echo では使用できない、より複雑な式の一部として print を使用できることを意味します。PHP マニュアルの例:
$b ? print "true" : print "false";
print は、複雑な式内で使用する場合に必要な優先順位テーブルの一部でもあります。ただし、優先順位リストのほぼ最下部にあります。,
AND
OR
XOR
低いだけです。
echo expression [, expression[,
expression] ... ]
しかしecho ( expression, expression )
、有効ではありません。これは有効です: echo ("howdy"),("partner")
; と同じ: echo
"howdy","partner"
; (そのような単一の用語には演算子の優先順位の問題がないため、その単純な例に括弧を入れても意味がありません。)したがって、括弧なしの echo は、連結される複数のパラメーターを取ることができます。
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
パラメータを 1 つだけ取ることができます:
print ("and a 123");
print "and a 123";
彼らです:
print()
よりも遅いと思いますecho
。
print()
次のような状況でのみ使用するのが好きです。
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
上記の回答に追加すると、print は 1 つのパラメーターしか使用できませんが、複数の値を連結できます。つまり、次のようになります。
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
これは、1 つのパラメーターで 5 つの値です。
PHP.net マニュアルが示唆するように、このディスカッションを読んでください。
大きな違いの 1 つは、echo
出力に複数のパラメーターを使用できることです。例えば:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
(以下のように) 出力ステートメントの結果を評価する場合は、 を使用しますprint
。そうでない場合は、 を使用しますecho
。
$res = print('test');
var_dump($res); //bool(true)