Chỉ cần tò mò ... khi viết một tuyên bố yêu cầu/bao gồm, bạn thích phương pháp nào tốt hơn?PHP yêu cầu/bao gồm thực hành mã hóa
require('filename.php');
hoặc
require 'filename.php';
Cảm ơn!
Chỉ cần tò mò ... khi viết một tuyên bố yêu cầu/bao gồm, bạn thích phương pháp nào tốt hơn?PHP yêu cầu/bao gồm thực hành mã hóa
require('filename.php');
hoặc
require 'filename.php';
Cảm ơn!
Luôn luôn như sau - điều tương tự cũng áp dụng cho echo
, print
và các cấu trúc ngôn ngữ khác. Không bao giờ thêm dấu ngoặc đơn bổ sung sau khi cấu trúc ngôn ngữ!
Lý do rất đơn giản: Sử dụng dấu ngoặc đơn làm cho bạn tin rằng require
là một chức năng - mà không phải! Ví dụ:
if (require('file.php') == false) {
// do stuff
}
Bạn - và thậm chí hầu hết các nhà phát triển PHP cao cấp - sẽ nói rằng điều này so sánh giá trị trả lại của require
. Nhưng nó không! PHP giải thích điều này như:
if (require (('file.php') == false)) {
// do stuff
}
đó là:
if (require '') {
// do stuff
}
Nếu bạn sử dụng dấu ngoặc đơn với ngôn ngữ xây dựng bạn có thể cũng viết:
require(((((((((((((((((((('file.php'))))))))))))))))))))
Hoặc bạn sẽ không bao giờ viết:
array(('hi'));
Điều đó cũng giống như vô nghĩa.
"Không bao giờ sử dụng dấu ngoặc đơn với cấu trúc ngôn ngữ". Vì vậy, bạn không bao giờ sử dụng 'mảng' hoặc' thoát' với một tham số? Điều này thực sự là một vấn đề ưu tiên vận hành, và một vấn đề khá giả tạo ở đó. Không có đề xuất nào trong câu hỏi.hãy kiểm tra giá trị trả về không tồn tại. Và nếu bạn * ghi * yêu cầu ('file.php') == false', bạn sẽ gặp lỗi nghiêm trọng ngay lập tức. Vì vậy, không có khả năng lỗi tinh vi. –
@Metthew: Với 'mảng' dấu ngoặc đơn là một phần của cấu trúc. Với 'require', chúng không phải. Bạn không thể bỏ qua chúng. – NikiC
PHP chỉ bị hỏng. – Gumbo