PHP の一重引用符 (') と二重引用符 (") は、文字列を作成するという同じ主な目的を果たしますが、変数の補間やエスケープ シーケンスに関しては動作が異なります。
一重引用符は、2 つの例外を除いて、その中のすべてを文字通りに扱います:
$name = "John"; echo 'Hello $name'; // Output: Hello $name echo 'I\'m learning PHP'; // Output: I'm learning PHP
二重引用符はいくつかのエスケープ シーケンスを処理し、最も重要なことに、文字列内の変数と式を解析します。
$name = "John"; echo "Hello $name"; // Output: Hello John echo "Array value: {$array['key']}"; // Complex expressions need curly braces
いくつかのベンチマークを使用してパフォーマンスの違いを調べてみましょう:
$name = "John"; $iterations = 1000000; // Test single quotes $start = microtime(true); for ($i = 0; $i < $iterations; $i++) { $string = 'Hello ' . $name; } $single_quote_time = microtime(true) - $start; // Test double quotes $start = microtime(true); for ($i = 0; $i < $iterations; $i++) { $string = "Hello $name"; } $double_quote_time = microtime(true) - $start; printf("Single quotes: %.6f seconds\n", $single_quote_time); printf("Double quotes: %.6f seconds\n", $double_quote_time);
このコードを実行すると、通常、最新の PHP バージョンでは違いが最小限であることがわかります。ただし、いくつかの考慮事項があります:
$sql = 'SELECT * FROM users WHERE status = "active"'; $html = '<div> <ol> <li>Use double quotes when: <ul> <li>You need variable interpolation</li> <li>You need escape sequences like \n, \t, etc. </li> </ul> </li> </ol> <pre class="brush:php;toolbar:false">$message = "Dear $userName,\nThank you for your order #$orderId";
動作の違いを示す、より複雑な例を次に示します。
$user = [ 'name' => 'John', 'age' => 30 ]; // Single quotes require concatenation $message1 = 'User ' . $user['name'] . ' is ' . $user['age'] . ' years old'; // Double quotes allow direct interpolation with curly braces $message2 = "User {$user['name']} is {$user['age']} years old"; // Both produce the same output: // User John is 30 years old
以上が一重引用符と二重引用符 : 文字列補間とパフォーマンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。