Tôi biết đây là một câu hỏi cũ, nhưng tôi nghĩ ai đó phải đề cập đến tất cả ưu và nhược điểm:
Cú pháp tốt hơn : Đó là sở thích cá nhân.
Hiệu suất : Không có sự khác biệt. Như nhiều người đã đề cập, trích dẫn kép có thể nhanh hơn nếu sử dụng nhiều biến không hợp lý.
Cách sử dụng tốt hơn : Trích dẫn đơn (chủ yếu). Như @Khez đã nói, với một trích dẫn duy nhất, bạn có thể ghép bất cứ thứ gì, thậm chí cả các lệnh gọi hàm và sửa đổi biến, như vậy : echo 'hi ' . trim($name) . ($i + 1);
. Điều duy nhất đôi quote thể làm điều đó đơn quote không thể làm là sử dụng \n
, \r
, \t
và như nhau.
Khả năng đọc : Không có sự khác biệt (có thể áp dụng sở thích cá nhân).
Khả năng ghi / Khả năng ghi lại / Gỡ lỗi : Trong các câu lệnh 1 dòng không có sự khác biệt, nhưng khi xử lý nhiều dòng, việc nhận xét / bỏ dòng dễ dàng hơn trong khi gỡ lỗi hoặc viết. Ví dụ:
$q = 'SELECT ' .
't1.col1 ' .
',t2.col2 ' .
//',t3.col3 ' .
'FROM tbl1 AS t1 ' .
'LEFT JOIN tbl2 AS t2 ON t2.col2 = t1.col1 ' .
//'LEFT JOIN tbl3 AS t3 ON t3.col3 = t2.col2 ' .
'WHERE t1.col1 = ' . $x . ' ' .
' AND t2.col2 = ' . $y . ' ' .
//' AND t3.col3 = ' . $z . ' ' .
'ORDER BY t1.col1 ASC ' .
'LIMIT 10';
Ít thoát : Trích dẫn đơn. Đối với trích dẫn đơn, bạn chỉ cần thoát 2 ký tự ( '
và \
). Đối với dấu nháy kép bạn cần phải thoát khỏi 2 ký tự ( "
, \
) và 3 nhiều hơn nếu cần thiết ( $
, {
và }
).
Ít thay đổi : Trích dẫn đơn. Ví dụ: nếu bạn có đoạn mã sau:
echo 'Number ' . $i . '!';
Và bạn cần tăng 1 đến $ i, để nó trở thành lượt thích:
echo 'Number ' . ($i + 1) . '!';
Nhưng để báo giá kép, bạn sẽ cần thay đổi điều này:
echo "Number $i!";
đến đây:
echo "Number " . ($i + 1) . "!";
Kết luận : Sử dụng những gì bạn thích .
echo 'Welcome '.$name.'!';