226

重複の可能性:
参照: PHP の print と echo の比較

PHP のこれら 2 つの関数に大きな根本的な違いはありますか?

4

5 に答える 5

294

出典: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

  1. スピード。両者には違いがありますが、速度的にはどちらを使用しても問題はありません。echo は、本当に核心に取り掛かりたい場合は戻り値を設定しないため、わずかに高速です。

  2. 表現。print()次のことができるという点で、関数のように動作します $ret = print "Hello World"。と$retなります1。これは、echo では使用できない、より複雑な式の一部として print を使用できることを意味します。PHP マニュアルの例:

$b ? print "true" : print "false";

print は、複雑な式内で使用する場合に必要な優先順位テーブルの一部でもあります。ただし、優先順位リストのほぼ最下部にあります。, AND OR XOR低いだけです。

  1. パラメーター)。文法は次のとおりです。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";
于 2008-10-24T16:27:56.393 に答える
75

彼らです:

  • print はパラメータを 1 つしか取りませんが、echo は複数のパラメータを持つことができます。
  • print は値 (1) を返すため、式として使用できます。
  • echo の方が少し速いです。
于 2008-10-24T16:29:33.380 に答える
9

print()よりも遅いと思いますecho

print()次のような状況でのみ使用するのが好きです。

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");
于 2009-03-19T18:04:12.017 に答える
9

上記の回答に追加すると、print は 1 つのパラメーターしか使用できませんが、複数の値を連結できます。つまり、次のようになります。

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

これは、1 つのパラメーターで 5 つの値です。

于 2009-01-15T16:47:45.433 に答える
6

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)
于 2008-10-24T16:28:54.333 に答える