エコーと印刷はPHPでどのように異なりますか? [複製]

StackOverflow https://stackoverflow.com/questions/234241

  •  04-07-2019
  •  | 
  •  

質問

  

可能な重複:
  リファレンス:PHPの印刷とエコーの比較

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

役に立ちましたか?

解決

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

  1. 速度。 2つの間に違いがありますが、速度的には どちらを使用するかは関係ありません。エコーはわずかに速い 本当に取得したい場合、戻り値を設定しないため ガチガチ。

  2. 式。 print()は、次のことができるという点で関数のように動作します。 $ ret = print" Hello World" ;そして、 $ ret 1 になります。つまり、その印刷 エコーができない、より複雑な式の一部として使用できます。あ 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  "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つのパラメーターのみを取りますが、エコーは複数のパラメーターを持つことができます。
  • printは値(1)を返すため、式として使用できます。
  • echoはわずかに高速です。

上記の回答に追加するには、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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top