Les guillemets simples (') et les guillemets doubles (") en PHP ont le même objectif principal de création de chaînes, mais ils se comportent différemment lorsqu'il s'agit d'interpolation de variables et de séquences d'échappement.
Les guillemets simples traitent littéralement tout ce qu'ils contiennent, à seulement deux exceptions :
$name = "John"; echo 'Hello $name'; // Output: Hello $name echo 'I\'m learning PHP'; // Output: I'm learning PHP
Les guillemets doubles traitent plusieurs séquences d'échappement et, surtout, analysent les variables et les expressions à l'intérieur de la chaîne :
$name = "John"; echo "Hello $name"; // Output: Hello John echo "Array value: {$array['key']}"; // Complex expressions need curly braces
Examinons la différence de performances avec quelques points de référence :
$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);
Lorsque vous exécutez ce code, vous constaterez généralement que la différence est minime dans les versions PHP modernes. Cependant, il y a quelques considérations :
$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";
Voici un exemple plus complexe montrant la différence de comportement :
$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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!