0

これは非常に基本的な質問かもしれませんが、適切な答えを見つけるのに苦労しました。そして最初の質問ですので、お手柔らかにお願いします。

文字列を変数と組み合わせる場合、単一引用符で囲まれた文字列内で変数を囲んでも変数が展開されないことを理解していますが、二重引用符で囲まれた文字列は変数 (およびその他の特殊文字) を展開し、2 つの例の構文が生じます。

$animal1='brown fox';
$animal2='lazy dog';
echo "The quick $animal1 jumps over the $animal2";
echo 'The quick '.$animal1.' jumps over the '.$animal2;

PHP は、解決する必要がある変数を探すのに時間を費やさないため、二重引用符で囲まれたカプセル化された文字列よりも高速に単一引用符でカプセル化された文字列を解析することを読んだことを思い出します。これは本当ですか?もしそうなら、2 番目の例のように文字列と変数を連結すると、このゲインは失われますか?

私の主な質問は次のとおりです。上記の例のように、文字列と変数を操作する場合、どちらのカプセル化方法が望ましいですか?

4

4 に答える 4

1

'一般的に使用するのではなく、使用する方がわずかに高速"です。この違いは非常に小さいですが、ほとんどのPHPアプリケーションでは違いに気付くことはありません。連結に関しては、どちらもほぼ同様の速度であり、それらの間にほとんど違いはありません。ここでベンチマークを読んでください: https://stackoverflow.com/a/1813685/2859624

于 2013-10-16T10:33:42.887 に答える
0

最小限の時間差 (たとえば、サーバーとクライアントの通信時間に比べて無視できるもの) しかありませんが、1 つの方法でより明確なテキストが得られます。後者を使用すると、テキストに挿入された変数を簡単に見つけることができます。

あなたが与える例2のように、私は常に通常のテキストから変数を取り出します。

于 2013-10-16T10:33:55.890 に答える
-1

参照できるベンチマークは次のとおりです。

http://www.phpbench.com/

一重引用符と二重引用符の部分を探します。違いは非常に小さいため、何十億回も実行しない限り、パフォーマンスへの影響はまったくありません。

変数をカプセル化する方法がもう 1 つあります。特に配列を操作する場合に便利です。

$str = "Encapsulating an array {$array['key']}";
于 2013-10-16T10:32:38.587 に答える