PHPにおけるシングルクォーテーションマークの誤りとダブルクォーテーションマークの小さな隠れた危険を分析する。


多くのプログラマがPHPではシングル引用符とダブル引用符は同じだと思っていますが、これはどのような使い方をしていますか?一部の面では同じですが、いくつかの面でも大きな違いがあります。
1、一般的には両者は共通ですが、二重引用符に変数が書かれていると解析操作が行われますが、一重引用符では解析されません。これはどう言いますか?例をあげましょう。

これでわかったでしょう。
2、実行効率が違っています。シングルクォーテーションマークの実行速度はダブルクォーテーションマークの実行速度より速いです。同じ大型のプログラムであれば、最適化に注意しなければなりません。結局PHPは解釈型言語です。したがって、内部に純粋な文字列しかない場合は、シングル引用符(速度が速い)を使って、内部に他のもの(変数など)がある場合は、ダブル引用符を使うとより柔軟になります。
PHPダブルクォーテーションマークの小さい隠れた危険
PHPの多くの文法的特性は攻撃者に搭乗できるようにします。例えばPHPはダブルクォーテーション中の変数を検出します。
下記のコードを実行します。

function test()
{
 echo "abc";
}
echo "${@test()}";
 
//  

 echo $@@@@@phpinfo();
原理は以下の通りです

$a = 'b';
$b = 'a';
 
echo $$a; //a
以上はPHP可変変数を利用して、ダブルクォーテーションマーク{}はダブルクォーテーション内の変数の内容特性を解析して作った小さなトラブルです。みんなは分かりましたか?これらのエラーと小さな潜在的な問題のプログラマーたちは普段から注意してください。