Sự khác biệt giữa dấu nháy đơn và kép trong PHP là dấu ngoặc kép là "thông minh" ở chỗ chúng sẽ phân tích cú pháp cho các biến khi được đọc, trong khi dấu nháy đơn "câm" và sẽ không cố gắng phân tích cú pháp bất kỳ ký tự nào trong chuỗi .
Điều này dẫn đến một số khác biệt nhỏ về những ký tự bạn có thể sử dụng; về cơ bản, nhân vật duy nhất bạn cần phải thoát khỏi khi sử dụng dấu nháy đơn là một dấu nháy đơn thân:
'\''
Trong khi nếu bạn sử dụng dấu ngoặc kép, bạn phải thoát khỏi nhân vật khác:
"\$"
Nhưng nó cũng cho phép đối với một số điều tiện lợi giống như thêm một mới-line đến cùng:
"my string\n"
với dấu ngoặc kép duy nhất bạn sẽ phải làm một nối:
'my string' . chr(10)
'my string' . "\n"
Nói chung, dấu nháy đơn nhanh hơn vì chúng "câm".
Tuy nhiên, thông thường người ta không nên thực sự lo lắng về những vấn đề này, được gọi là tối ưu hóa sớm, và nên tránh.
Một vài từ về tối ưu hóa: thông thường, đầu tiên bạn nên viết chương trình theo cách nó hoạt động và sau đó tìm các nút cổ chai lớn nhất và sửa những lỗi cụ thể đó. Nếu tốc độ chuỗi thực sự là một vấn đề cho bạn trong PHP, bạn có thể muốn xem xét việc chuyển sang ngôn ngữ khác.
Về tốc độ: bạn có thể muốn tập trung nhiều hơn vào việc sử dụng bộ nhớ so với thời gian CPU. Trong những trường hợp này, thời gian CPU có thể được coi là khá ổn định. Thời gian CPU có liên quan hơn khi viết các thuật toán sẽ lặp lại nhiều lần.
Về ghép nối: bạn càng ghép các chuỗi bằng cách sử dụng toán tử dấu chấm, càng có nhiều bộ nhớ bạn sẽ sử dụng.
Hãy xem xét điều này:
$str1 = 'asdf';
$str2 = 'qwer';
// this will result in more memory being allocated for temporary storage
echo $str1 . $str2;
// this will not allocate as much memory as the previous example
echo $str1;
echo $str2;
Tôi sẽ nói rằng, nó phụ thuộc vào nơi dữ liệu đến từ ... đầu vào của người dùng hoặc đầu vào hệ thống – Prix
Có sự khác biệt về hiệu suất không? tức là, thời gian xử lý nhiều hơn với mỗi? – ina
có thể trùng lặp của [PHP - "Sal's mall là $ emo" vs "Sal's mall is". $ Emo - chuỗi với báo giá kết nối hiệu quả] (http://stackoverflow.com/questions/3394166/php-sals-mall-is -emo-vs-sals-mall-là-emo-string-với-dấu ngoặc kép-concaten) –