PHPの一重引用符と二重引用符にはどのような違いがありますか?
PHP では、シングルクォートとダブルクォートには以下の違いがあります。
- 変数解決: ダブルクォートは変数を解決し、その値に置き換えられます。一方、シングルクォートは変数を解決せず、単なる文字列として扱われます。
$name = 'John';
echo "Hello, $name!"; // 输出:Hello, John!
echo 'Hello, $name!'; // 输出:Hello, $name!
- エスケープシーケンス:ダブルクォートはエスケープシーケンス(\n、\r、\tなど)を認識・解決しますが、シングルクォートはそれらを通常の文字列として扱います。
echo "Line 1\nLine 2"; // 输出:
// Line 1
// Line 2
echo 'Line 1\nLine 2'; // 输出:Line 1\nLine 2
- 二重引用符と一重引用符のネスト: 二重引用符文字列内で一重引用符を使用する場合、エスケープは必要ありません。同様に、一重引用符内の二重引用符を使用できますが、エスケープが必要です。
echo "She said, 'Hello!'"; // 输出:She said, 'Hello!'
echo 'He said, "Hi!"'; // 输出:He said, "Hi!"
- 単一引用符は、変数やエスケープ文字をパースする必要がないため、引用符よりも高速です。
変数が入っていたり、エスケープ文字を解決する必要がある場合は二重引用符を使うこと。変数が入っておらず、エスケープ文字を解決する必要がない場合はシングルクォートを使うことの方がパフォーマンスが向上する。