Nếu bạn đang sử dụng tính năng bao gồm cho những thứ không bắt buộc 100% thì tính năng bao gồm sẽ vẫn hoạt động và yêu cầu sẽ phát nổ
Nếu bạn đưa vào nội dung nào đó mà bạn cho là tùy chọn, nhưng một số phần khác trong tập lệnh của bạn lại sử dụng nội dung đó, thì tập lệnh của bạn sẽ bùng nổ ở đó và có thể bạn sẽ không biết tại sao
Đây không phải là một cách hay để viết chương trình
Mặt khác, không có sự khác biệt giữa hai
chỉnh sửa
Trong cách sử dụng thông thường, việc bạn chọn sử dụng
9 hay
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 không quan trọng, 95% thời gian
Như vậy, bạn nên bám vào
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 [hoặc
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52], để biết khi nào bạn thiếu tệp bạn cần
Các lỗi đến từ việc bao gồm các tệp bên trong các tệp được bao gồm, bên trong các tệp được bao gồm, khi thiếu một tệp đính kèm ở trên cùng, thực sự khó theo dõi
Một số người thích
9 hơn vì họ muốn sử dụng "tính năng" đó.
Douglas Crockford là một chuyên gia về JavaScript/Java/C++, chứ không phải PHP, nhưng anh ấy gợi ý rằng nên tránh các tính năng trông giống như lỗi hoặc tác dụng phụ không thể phân biệt được với lỗi để giúp bạn tỉnh táo.
Xin lưu ý bạn, nếu toàn bộ dự án của bạn hoàn toàn dựa trên lớp [hoặc chức năng] và hoàn toàn theo mô-đun, thì bạn không nên sử dụng nhiều để bao gồm, ngoài việc đặt lại các giá trị trên đối tượng cấu hình khi khởi tạo ứng dụng [bao gồm cả quản trị viên-
Như bạn có thể đoán, có nhiều cách khác để làm điều này
Và đây chỉ là những gợi ý, nhưng những gợi ý đến từ những người thông minh hơn tôi, với hàng chục năm kinh nghiệm trong hàng chục ngôn ngữ. THAM KHẢO. Sự khác biệt giữa "bao gồm" và "yêu cầu" trong php
Câu lệnh request_once[] tự thay thế bằng tệp đã chỉ định, giống như cách #include của bộ tiền xử lý C hoạt động và về mặt đó thì tương tự như câu lệnh require[]. Sự khác biệt chính là trong chuỗi bao gồm, việc sử dụng require_once[] sẽ đảm bảo rằng mã chỉ được thêm vào tập lệnh của bạn một lần và tránh xung đột với các giá trị biến hoặc tên hàm có thể xảy ra
Ví dụ: nếu bạn tạo 2 tệp bao gồm sau utils. inc và crazyib. tập đoàn
Ví dụ 11-2. đồ dùng. tập đoàn
Ví dụ 11-3. ngu xuẩn. tập đoàn
Và sau đó bạn viết một đoạn script cause_error_require. php
Ví dụ 11-4. nguyên nhân_lỗi_require. php
Khi bạn thử chạy cái sau, kết quả ouptut sẽ là [sử dụng PHP 4. 01pl2]
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 5Bằng cách sửa đổi crazyib. inc và nguyên nhân_errror_require. php để sử dụng require_once[] thay vì require[] và đổi tên cái cuối cùng thànhvoid_error_require_once. php, chúng tôi có
Ví dụ 11-5. ngu xuẩn. inc [cố định]
... require_once["utils.inc"]; function showVar[$var] { ...
Ví dụ 11-6. tránh_error_require_once. php
... require_once["foolib.inc"]; require_once["utils.inc"]; $foo = array["1",array["complex","quaternion"]]; ...Và khi chạy cái sau, đầu ra sẽ là [sử dụng PHP 4. 0. 1pl2]
GLOBALS ARE NICE this is requiring globals.inc again which is also required in foolib.inc Running goodTea: Oolong tea tastes good! Printing foo: Array [ [0] => 1 [1] => Array [ [0] => complex [1] => quaternion ] ]
Cũng lưu ý rằng, tương tự như hành vi của #include của bộ tiền xử lý C, câu lệnh này hoạt động tại "thời điểm biên dịch", e. g. khi tập lệnh được phân tích cú pháp và trước khi tập lệnh được thực thi và không được sử dụng cho các phần của tập lệnh cần được chèn động trong quá trình thực thi tập lệnh. Bạn nên sử dụng include_once[] hoặc include[] cho mục đích đó
Để biết thêm ví dụ về cách sử dụng require_once[] và include_once[], hãy xem mã PEAR có trong bản phân phối mã nguồn PHP mới nhất
Xem thêm. yêu cầu [], bao gồm [], bao gồm_once [], get_required_files [], get_included_files [], readfile [] và ảo []
Bạn có thể sẽ bắt gặp cả
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 và
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 trong các tập lệnh PHP. Hai từ khóa này gần giống nhau nhưng có điểm khác biệt chính phân biệt chúng
Khi bạn sử dụng
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50, PHP sẽ bao gồm tệp được chỉ định mỗi khi nó được gọi. Để so sánh,
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 sẽ bao gồm tệp được chỉ định một lần và bỏ qua tệp nếu nó được đề cập lại trong cùng một tập lệnh
Nếu tập lệnh không bắt buộc để tập lệnh chạy, bạn nên cân nhắc sử dụng bao gồm hoặc bao gồm_once để thay thế. Sử dụng bao gồm sẽ chỉ đưa ra cảnh báo nếu tệp được yêu cầu không tồn tại. Nếu bạn cần script bị lỗi nếu file không tồn tại thì
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 hoặc
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 là sự lựa chọn hoàn hảo
Các tệp được yêu cầu dựa trên đường dẫn được chỉ định trong câu lệnh. Nếu không có đường dẫn, nó sẽ thử sử dụng
- Apple
- Banana
- Orange
4 được chỉ định trong tệp cấu hình PHP. Cuối cùng, PHP sẽ kiểm tra thư mục của tập lệnh và thư mục làm việc hiện tại là lần thử cuối cùng. Nếu PHP không thể tìm thấy tệp ở các vị trí trên, nó sẽ bị lỗi và báo lỗiĐối với
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 hoặc
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52, PHP sẽ gây ra lỗi nghiêm trọng nếu tệp được chỉ định không tồn tại. Lỗi nghiêm trọng sẽ dừng thực thi tập lệnh ngăn không cho mã tiến triển. Do đó, việc sử dụng yêu cầu là hoàn hảo nếu bạn bao gồm các tệp cần thiết để thực thi tập lệnh
Nơi bạn sử dụng câu lệnh yêu cầu sẽ xác định phạm vi biến. Ví dụ: sử dụng yêu cầu bên trong một hàm sẽ có các biến của tệp chỉ khả dụng trong hàm
Khi nào sử dụng yêu cầu
Bạn sẽ muốn sử dụng
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 bất cứ khi nào bạn có thể cần bao gồm một tập lệnh nhiều lần trong toàn bộ mã của mình. Ví dụ: có thể có trường hợp bạn cần các biến hoặc đầu ra cụ thể ở những nơi khác nhau
Nếu bạn muốn tránh các sự cố trùng lặp và không muốn bao gồm tệp nhiều lần, bạn có thể sử dụng. Câu lệnh
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 sẽ đảm bảo rằng tệp chỉ được bao gồm một lần trong cùng một tập lệnh
Ví dụ dưới đây của chúng tôi sẽ cho bạn thấy cách yêu cầu hoạt động khi bạn sử dụng nó ở hai nơi khác nhau
Tệp bên dưới có tên là
- Apple
- Banana
- Orange
9 và yêu cầu một tệp khác có tên là
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
00
Dưới đây là nội dung của tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0 cần thiết để mã ở trên chạy. Tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0 phải nằm trong cùng thư mục với tệp
- Apple
- Banana
- Orange
9
- Apple
- Banana
- Orange
Khi bạn chạy tệp
- Apple
- Banana
- Orange
9, bạn sẽ nhận được đầu ra giống hệt như ví dụ của chúng tôi bên dưới. Bạn có thể thấy rằng tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0 của chúng tôi xuất ra hai lần
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
Khi nào nên sử dụng require_once
Khi bạn sử dụng
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52, PHP sẽ chỉ bao gồm tệp được yêu cầu một lần trong toàn bộ tập lệnh. Do đó, việc sử dụng require_once cực kỳ quan trọng nếu bạn muốn tránh các sự cố trùng lặp, gán lại biến ngẫu nhiên, xác định lại hàm, v.v.
Bạn nên sử dụng
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 khi không cần đưa nội dung của tệp vào nhiều lần. Nó cũng hữu ích nếu bạn đang làm việc trên một tập lệnh và không chắc liệu tệp đã được đưa vào hay chưa và bạn không muốn nó được đưa vào hai lần.
Mã bên dưới dành cho tệp
- Apple
- Banana
- Orange
9 của chúng tôi, nơi chúng tôi sử dụng GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 hai lần để bao gồm tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0. Ví dụ này sẽ chứng minh cách hoạt động của GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 khi được sử dụng trong cùng một tập lệnh
0
Dưới đây là tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0 của chúng tôi và nằm trong cùng thư mục với tệp
- Apple
- Banana
- Orange
9
- Apple
- Banana
- Orange
Đầu ra của tệp
- Apple
- Banana
- Orange
9 sẽ tạo ra một cái gì đó tương tự như ví dụ của chúng tôi bên dưới. Như bạn có thể thấy, GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 thứ hai không xuất tệp
My first require.
- Apple
- Banana
- Orange
My Second require.
- Apple
- Banana
- Orange
0 của chúng tôi vì chúng tôi đã đưa nó vào trước đó6
Sử dụng Yêu cầu với Tệp bị Thiếu
Khi bạn sử dụng yêu cầu với một tệp không tồn tại, nó sẽ dẫn đến lỗi nghiêm trọng. Trong ví dụ của chúng tôi bên dưới, chúng tôi có một thiết lập tương tự như các ví dụ trên nhưng viết sai chính tả tệp đầu tiên của chúng tôi
7
Ví dụ của chúng tôi dưới đây cho thấy PHP đã gây ra một lỗi nghiêm trọng và ngăn không cho tập lệnh thực thi thêm. Bạn có thể sử dụng đầu ra này để chẩn đoán thêm vấn đề nếu cần
8
Sự kết luận
Tôi hy vọng bây giờ bạn đã biết khi nào nên sử dụng
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 50 hoặc
GLOBALS ARE NICE GLOBALS ARE NICE Fatal error: Cannot redeclare causeerror[] in utils.inc on line 52 trong mã PHP của mình. Cả hai đều cực kỳ tiện dụng để bao gồm các tệp quan trọng trong tập lệnh của bạn. Tôi cũng khuyên bạn nên xem bao gồm hoặc bao gồm nếu bạn muốn bao gồm các tệp không cần thiết cho tập lệnh của mình
Chúng tôi luôn bổ sung thêm các hướng dẫn về PHP, vì vậy hãy nhớ xem chúng nếu bạn muốn tìm hiểu thêm về mã hóa trong PHP
Nếu bạn nghĩ rằng chúng tôi có thể cải thiện hướng dẫn này, vui lòng để lại nhận xét ở cuối trang này