Petikan tunggal (') dan petikan berganda (") dalam PHP mempunyai tujuan utama yang sama untuk mencipta rentetan, tetapi ia berkelakuan berbeza apabila ia melibatkan interpolasi pembolehubah dan jujukan melarikan diri.
Petikan tunggal memperlakukan segala-galanya di dalamnya secara literal, dengan hanya dua pengecualian:
$name = "John"; echo 'Hello $name'; // Output: Hello $name echo 'I\'m learning PHP'; // Output: I'm learning PHP
Petikan berganda memproses beberapa jujukan melarikan diri dan, yang paling penting, menghuraikan pembolehubah dan ungkapan di dalam rentetan:
$name = "John"; echo "Hello $name"; // Output: Hello John echo "Array value: {$array['key']}"; // Complex expressions need curly braces
Mari kita periksa perbezaan prestasi dengan beberapa penanda aras:
$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);
Apabila anda menjalankan kod ini, anda biasanya akan mendapati bahawa perbezaan adalah minimum dalam versi PHP moden. Walau bagaimanapun, terdapat beberapa pertimbangan:
$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";
Berikut ialah contoh yang lebih kompleks yang menunjukkan perbezaan tingkah laku:
$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
Atas ialah kandungan terperinci Petikan Tunggal dan Petikan Berganda : Interpolasi Rentetan dan Prestasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!