PHPでは、一重引用符と二重引用符は少し異なります。 評価方法の違いを確認するために読んでください。
単一引用符
単一引用符は、文字通りの意味で物事を解析する傾向があります。 たとえば、次のようにします。
$ test = "BOOOM"; エコー '$ test'
変数名は、単一引用符で囲まれている場合、実際の値に解析されません。 これを単純なphpプログラムとして実行して実際に出力されるものを次に示します。
$ test
単一引用符で囲まれた文字列内で実際に情報が解析される場所について考えることができるシナリオは2つだけです。 最初に、単一引用符で囲まれた文字を表示するには、円記号を前に付ける必要があります。 それ以外の場合は、文字列の終わりとして解釈されます。 第二に、バックスラッシュを表示するには、その前に別のバックスラッシュが必要です。 例:
echo '単一引用符:\' '; echo 'バックスラッシュ:\\';
二重引用符
二重引用符は、物事を解析する傾向があります。 二重引用符の間で実行する場合:
$ test = "BOOOM"; エコー "$ test"
実際の変数値を出力します:
ブーム
ここで、出力しようとしている変数名が周囲の文字によって正しく解析されないというシナリオに陥ることがあります。
$ test = "BOOOM"; echo "$ tested";
ここで何が出力されると思いますか? 答えは何もありません。 PHPは$ testedという名前の変数を探しますが、変数が存在しないため、何も出力されません。 「ed」が後に続く値を出力する適切な方法は次のとおりです。
$ test = "BOOOM"; echo "{$ test} ed";
中括弧で囲むことにより、PHPに変数の開始位置と停止位置を知らせ、変数を適切に評価できるようにします。
速度差
いくつかの簡単なベンチマークテストを実行して、いくつかの違いのシナリオを評価しました。2つの速度の違いはごくわずかです。 変数を探して値を解析する必要がないため、一重引用符は少し速くなりましたが、重要な違いをもたらすシナリオに遭遇したことはありません。 現在のニーズに合ったものを使用してください。
