Nó không được coi là OK - ngay cả khi nó sẽ hoạt động trong hầu hết các trường hợp.
Về cơ bản, khi PHP xem đây:
echo $array[key];
Nó sẽ tìm kiếm một hằng số, định nghĩa với define
, gọi key
- và, nếu có là không có, nếu sẽ mất giá trị 'key'
.
Nhưng, nếu có cái gì đó như thế này trước đó trong mã của bạn:
define('key', 'glop');
Nó sẽ không mất
echo $array['key'];
nữa; thay vào đó, nó sẽ sử dụng giá trị của key
liên tục - và mã của bạn sẽ giống như:
echo $array['glop'];
Cuối cùng, không đặt dấu ngoặc kép arround tên của key có hại cho ít nhất hai lý do:
- có một rủi ro mà nó sẽ không làm những gì bạn mong đợi - đó là rất xấu
- Có thể, hôm nay ...
- Nhưng còn tuần sau/tháng/năm thì sao?
- Có lẽ, một ngày nào đó, bạn sẽ
define
một hằng số với tên sai ;-)
- Nó không tốt cho hiệu suất:
- nó có để tìm kiếm một hằng số, trước khi sử dụng Và, như đã nói trong một nhận xét, nó tạo ra thông báo (ngay cả khi bạn tắt
error_reporting
và display_errors
, các thông báo/cảnh báo/lỗi vẫn được tạo, ngay cả khi bị hủy sau)
Vì vậy, bạn không nên nghe rằng anh chàng ở điểm này: ông là sai: nó không thành vấn đề.
Và nếu bạn cần một số "bằng chứng" đó là "tốt hơn" so với những gì mọi người có thể cho bạn biết về stackoverflow, bạn có thể trỏ anh phần này của hướng dẫn, như một tài liệu tham khảo: Why is $foo[bar] wrong?
Nguồn
2010-03-08 23:06:35
Có lẽ đồng nghiệp của bạn có nghĩa là không quan trọng việc sử dụng dấu nháy đơn hay kép? Bởi vì điều đó sẽ ít nhiều đúng (ngoại trừ các biến không được phân tích cú pháp trong các dấu nháy đơn.) –