PHP は、出力操作を容易にする 2 つの構造、print と echo を提供します。これらは区別できるように見えますが、echo は print のより多用途なバージョンであるなど、類似点を共有しています。
内部操作:
print と echo の両方最終的には同じオペコード「ZEND_ECHO_SPEC_CONST_HANDLER」によって処理され、値が返されることが保証されます。 1.
構文:
Print は単一のオペランド (式) を必要としますが、echo は複数のオペランドを処理できます。
ステートメントとして:
エコーはステートメントです。構文的には if または while 構造と似ており、式の一部にすることはできません。対照的に、print はステートメントとしてスタンドアロンにすることも、式に含めることもできます。
演算子の類似:
Print は単項演算子のように動作しますが、技術的にはそうではありません。引数を 1 つだけ受け入れ、その結果 (常に 1) は式に含めるのに役立ちます。
条件文:
Print の戻り値 ( 1) 条件式で使用できるようになります。これは、次の例に示すように、実行フローのデバッグや制御に有利です。
if (foo()) { print "In and out...\n"; bar(); }
デバッグ:
Print は、オンザフライ デバッグに役立ちます。以下に示すように、echo ステートメントでラップすることなく迅速な出力が可能になるためです。
$haystack = 'abcde'; $needle = 'f'; strpos($haystack, $needle) !== FALSE or print "$needle not in $haystack"; // Output: f not in abcde
Print: 関数ではなく、isset や empty などのキーワードに似た言語構造。
Echo: 言語構造でもありません。関数。関数を呼び出すのではなく、かっこを使用して式を解析します。
複数の引数:
print と echo の両方で、複数の引数に対して個別のステートメントが必要です。 :
print 1, 2, 3; // Syntax error echo 1, 2, 3; // Syntax error
意味的には、print と echo はどちらも print を繰り返し呼び出すための糖衣構文と見なすことができます。次の点を考慮してください:
echo 1, 2, 3; // Equivalent to: print 1; print 2; print 3;
Echo は print と比較してオペコードが少ないため、パフォーマンスがわずかに向上します。
Print:
PRINT var, result
Echo:
ECHO var
Echo は、変数の型 (オブジェクトかどうか) に基づいて、印刷プロセスを別の関数 (zend_print_variable) に委譲します。これにより、印刷と比較してオーバーヘッドの層が追加されます。
ほとんどの場合、そのシンプルさ、多用途性、パフォーマンス上の利点により、echo を使用することをお勧めします。ただし、条件ステートメントまたはデバッグ目的で戻り値が必要な場合は、print が引き続き役立ちます。
以上がPHP の「echo」と「print」: それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。