可能性のある複製:
参照:PHPの印刷とエコーの比較
PHPのこれら2つの関数の間に大きな根本的な違いはありますか?
From: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/4
速度。 2つの間に違いがありますが、速度的にはどちらを使用するかは関係ありません。エコーは、本当に重要なことをしたい場合に戻り値を設定しないため、わずかに高速です。
表現。 print()
は、次のことができるという点で関数のように振る舞います:$ret = print "Hello World"
;そして、$ret
は1
になります。これは、エコーができないより複雑な式の一部として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 "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は1つのパラメーターしか取得できませんが、複数の値を連結できます。
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
これは1つのパラメーターに5つの値
print()
はecho
より遅いと思います。
print()
は次のような状況でのみ使用します。
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
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)