Hướng dẫn difference between include_once() and require_once in php - sự khác biệt giữa include_once () và Requi_once trong php
Có 8 và 9 là tốt. Show Vì vậy, câu hỏi của bạn nên là ...
Câu trả lời cho 1 được mô tả ở đây.
Câu trả lời cho 2 có thể được tìm thấy ở đây.
Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:17Mar 10, 2010 at 16:17
LeoleoLeo 37.2K7 Huy hiệu vàng73 Huy hiệu bạc99 Huy hiệu đồng7 gold badges73 silver badges99 bronze badges 3 Sử dụng
Nhưng về cơ bản, tùy thuộc vào bạn khi nào nên sử dụng.
Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:25Mar 10, 2010 at 16:25
GordongordonGordon 308K72 Huy hiệu vàng527 Huy hiệu bạc552 Huy hiệu đồng72 gold badges527 silver badges552 bronze badges 1 Đề xuất của tôi là chỉ sử dụng 2 99,9% thời gian.Thay vào đó, sử dụng 8 hoặc 1 ngụ ý rằng mã của bạn không thể tái sử dụng ở nơi khác, tức là các tập lệnh bạn đang thực sự thực thi mã thay vì cung cấp một lớp hoặc một số thư viện chức năng.execute code instead of making available a class or some function libraries. Nếu bạn được yêu cầu/bao gồm mã thực thi tại chỗ, đó là mã thủ tục và bạn cần phải biết một mô hình mới. Giống như lập trình hướng đối tượng, lập trình dựa trên chức năng hoặc lập trình chức năng.get to know a new paradigm. Like object oriented programming, function-based programming, or functional programming. Nếu bạn đã thực hiện OO hoặc lập trình chức năng, việc sử dụng 9 chủ yếu sẽ bị trì hoãn khi trong ngăn xếp bạn tìm thấy lỗi/lỗi. Bạn có muốn biết rằng chức năng 9 không có sẵn khi bạn gọi cho nó sau này, hoặc thời điểm mà bạn mong đợi nó có sẵn bằng cách yêu cầu thư viện? Nói chung, tốt nhất là nên biết ngay lập tức nếu thứ gì đó bạn cần và mong đợi không có sẵn, vì vậy chỉ cần sử dụng 2.the moment that you expect it to be available by requiring the library? Generally, it's best to know immediately if something you need and expect isn't available, so just use 2.Ngoài ra, trong OOP hiện đại, chỉ tự động tải các lớp của bạn khi sử dụng. Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:46Mar 10, 2010 at 16:46
KzqaikzqaiKzqai 22.3K24 Huy hiệu vàng103 Huy hiệu bạc134 Huy hiệu đồng24 gold badges103 silver badges134 bronze badges 1 Sự khác biệt giữa các hàm _once và không có chức năng _once: Không có mã _once sẽ được bao gồm một lần nữa trong khi với các hàm _once PHP theo dõi các tệp được bao gồm và sẽ chỉ bao gồm một lần. Sự khác biệt giữa yêu cầu và bao gồm: Nếu không tìm thấy tệp bắt buộc, PHP sẽ phát ra lỗi nghiêm trọng trong khi chỉ bao gồm một cảnh báo sẽ được phát ra. Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:18Mar 10, 2010 at 16:18
SebastiansebastianSebastian 2.6462 Huy hiệu vàng22 Huy hiệu bạc27 Huy hiệu đồng2 gold badges22 silver badges27 bronze badges 0 1 sẽ đưa ra cảnh báo nếu nó không thể bao gồm tệp, nhưng phần còn lại của tập lệnh sẽ chạy. 2 sẽ ném 3 và dừng tập lệnh nếu nó không thể bao gồm tệp.Các chức năng 4 và 5 sẽ không bao gồm tệp lần thứ hai nếu nó đã được đưa vào.Xem các trang tài liệu sau:
Đã trả lời ngày 3 tháng 11 năm 2011 lúc 11:48Nov 3, 2011 at 11:48
Đa thứcPolynomial Phù bằng vàng 27K1179 Huy hiệu bạc107 Huy hiệu đồng11 gold badges79 silver badges107 bronze badges Bạn nên giữ các định nghĩa lớp và chức năng được tổ chức trong các tập tin. Sử dụng 5 để tải phụ thuộc (lớp, chức năng, hằng số).dependencies (classes, functions, constants).Sử dụng 2 để tải các tệp giống như mẫu.template-like files.Sử dụng 4 để tải phụ thuộc tùy chọn (lớp, chức năng, hằng số).optional dependencies (classes, functions, constants).Sử dụng 1 để tải các tệp giống như mẫu tùy chọn.optional template-like files.
Blackbam 15.9K24 Huy hiệu vàng87 Huy hiệu bạc142 Huy hiệu đồng24 gold badges87 silver badges142 bronze badges Đã trả lời ngày 2 tháng 6 năm 2012 lúc 9:20Jun 2, 2012 at 9:20
oxy oxyoxygen 5.4936 Huy hiệu vàng36 Huy hiệu bạc65 Huy hiệu Đồng6 gold badges36 silver badges65 bronze badges Một câu trả lời sau 7 năm cho năm 2018Câu hỏi này đã được hỏi bảy năm trước, và không có câu trả lời nào cung cấp trợ giúp thực tế cho câu hỏi. Trong chương trình PHP hiện đại, bạn chủ yếu sử dụng 2 chỉ một lần để bao gồm lớp AutoLoader của mình (trình tải tự động tải của nhà soạn nhạc) và nó sẽ tải tất cả các lớp và chức năng của bạn (các tệp chức năng cần được thêm vào một cách rõ ràng vào tệp 1 để có sẵn trong tất cả các tập tin). Nếu lớp của bạn không thể tải từ AutoLoader, bạn sử dụng 2 để tải nó.Có một số trường hợp chúng ta cần sử dụng 8. Ví dụ: nếu bạn có định nghĩa mảng thực sự lớn và bạn không muốn thêm mã này vào mã nguồn định nghĩa lớp của mình, bạn có thể:
Nếu tệp mà bạn dự định bao gồm chứa một cái gì đó có thể thực thi hoặc khai báo một số biến, bạn hầu như luôn cần sử dụng 8, bởi vì nếu bạn sử dụng 2 ngoài nơi đầu tiên của bạn sẽ không được thực thi và/hoặc các biến của bạn sẽ không bắt đầu âm thầm, gây ra lỗi hoàn toàn khó xác định.Không có trường hợp sử dụng thực tế cho 1 và 9 thực sự.0 Bất cứ khi nào bạn đang sử dụng 5 có thể được sử dụng trong một tệp để bao gồm một tệp khác khi bạn cần tệp được gọi chỉ một thời gian trong tệp hiện tại. Ở đây trong ví dụ tôi có Test1.php.
và trong một tệp khác mà tôi đã đặt tên là Test2.php
Khi bạn đang xem M yêu cầu tệp Test1 hai lần nhưng tệp sẽ bao gồm Test1 một lần và để gọi lần thứ hai, điều này sẽ bị bỏ qua. Và mà không tạm dừng sẽ hiển thị đầu ra một lần. Bất cứ khi nào bạn đang sử dụng 'bao gồm_once () `có thể được sử dụng trong một tệp để bao gồm một tệp khác khi bạn cần tệp được gọi nhiều lần trong tệp hiện tại. Ở đây trong ví dụ tôi có một tệp có tên Test3.php.
Và trong một tệp khác mà tôi đã đặt tên là test4.php
Khi bạn đang xem M bao gồm tệp Test3 sẽ bao gồm tệp một lần nhưng tạm dừng việc thực hiện thêm.
S.L. Barth 8.08971 Huy hiệu vàng 50 Huy hiệu bạc63 Huy hiệu Đồng71 gold badges50 silver badges63 bronze badges Đã trả lời ngày 29 tháng 9 năm 2012 lúc 9:42Sep 29, 2012 at 9:42
AlimohsinalimohsinAliMohsin 3291 Huy hiệu vàng5 Huy hiệu bạc10 Huy hiệu đồng1 gold badge5 silver badges10 bronze badges 0 Sử dụng "bao gồm" cho các mẫu PHP có thể tái sử dụng. Sử dụng "yêu cầu" cho các thư viện cần thiết. "*_once" là tốt, bởi vì nó kiểm tra xem tệp đã được tải hay không, nhưng nó chỉ có ý nghĩa đối với tôi trong "ural_once".
Đã trả lời ngày 10 tháng 3 năm 2010 lúc 17:08Mar 10, 2010 at 17:08
mo.mo.mo. 3,3841 Huy hiệu vàng23 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge23 silver badges20 bronze badges Sự khác biệt là trong lỗi các lệnh tạo ra. Với 8, tệp bạn muốn sử dụng là thực sự cần thiết và do đó tạo ra 0 nếu không tìm thấy.2 giống hệt với 1 chỉ tạo ra lỗi 5 nếu nó không bị im lặng.Vì vậy, sử dụng nó nếu tệp được yêu cầu để làm cho mã còn lại hoạt động và bạn muốn tập lệnh không thành công tệp không có sẵn. Cho 6:4 có thể được sử dụng trong trường hợp có cùng một tệp có thể được bao gồm và đánh giá nhiều lần trong quá trình thực hiện tập lệnh cụ thể, vì vậy trong trường hợp này, nó có thể giúp tránh các vấn đề như xác định lại chức năng, xác định lại giá trị biến, v.v. Tương tự áp dụng cho 5 tất nhiên.Tham khảo: 2, 4Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:20Mar 10, 2010 at 16:20
Felix Klingfelix KlingFelix Kling 773K172 Huy hiệu vàng1069 Huy hiệu bạc1116 Huy hiệu đồng172 gold badges1069 silver badges1116 bronze badges 0
Đã trả lời ngày 30 tháng 7 năm 2015 lúc 6:05Jul 30, 2015 at 6:05
Akshay Khaleakshay KhaleAkshay Khale 7.9018 Huy hiệu vàng49 Huy hiệu bạc58 Huy hiệu Đồng8 gold badges49 silver badges58 bronze badges Với yêu cầu, tệp phải tồn tại, nếu không có lỗi sẽ hiển thị; Trong khi đó bao gồm - nếu tệp không tồn tại thì trang sẽ tiếp tục tải. Đã trả lời ngày 10 tháng 3 năm 2010 lúc 16:24Mar 10, 2010 at 16:24
BrianbrianBrian Huy hiệu đồng 9111 bronze badge 1 - "Yêu cầu" và "Yêu cầu_once" ném lỗi nghiêm trọng nếu tệp không tồn tại và dừng thực thi tập lệnh 2 - "Bao gồm" và "bao gồm_once" ném một cảnh báo và việc thực hiện tiếp tục 3. Đã trả lời ngày 28 tháng 7 năm 2021 lúc 6:44Jul 28, 2021 at 6:44
Yêu cầu các phần quan trọng, như ủy quyền và bao gồm tất cả những người khác. Nhiều người bao gồm chỉ là thiết kế rất tệ và phải tránh được. Vì vậy, *_once không thực sự quan trọng.
Đã trả lời ngày 10 tháng 3 năm 2010 lúc 17:04Mar 10, 2010 at 17:04
Ý thức chung thông thường của bạnYour Common Sense 156K39 Huy hiệu vàng209 Huy hiệu bạc332 Huy hiệu Đồng39 gold badges209 silver badges332 bronze badges Bao gồm / yêu cầu bạn có thể bao gồm cùng một tệp nhiều hơn một lần:
Yêu cầu_once / bao gồm_once
Đã trả lời ngày 3 tháng 11 năm 2011 lúc 11:48Nov 3, 2011 at 11:48
MarcxmarcxMarcx 6.7264 Huy hiệu vàng46 Huy hiệu bạc69 Huy hiệu Đồng4 gold badges46 silver badges69 bronze badges Tôi đã sử dụng chức năng như dưới đây:
Có các giá trị không đổi được khai báo trong xyz.php. Tôi phải gọi chức năng dosome () này từ tệp tập lệnh PHP khác. Nhưng tôi đã quan sát hành vi trong khi gọi hàm này trong một vòng lặp, đối với việc lặp đầu tiên () đã nhận được các giá trị không đổi trong 0, nhưng sau đó mỗi lần lặp 1 không thể nhận được các giá trị không đổi được khai báo trong 0.Tôi đã giải quyết vấn đề của mình bằng cách chuyển từ 5 sang 1, mã 1 được cập nhật như dưới đây:
Bây giờ mọi cuộc gọi lặp đến 1 đều có các giá trị không đổi được xác định trong 0.
Đã trả lời ngày 30 tháng 9 năm 2016 lúc 6:51Sep 30, 2016 at 6:51
PrashantprashantPrashant 4.3346 Huy hiệu vàng33 Huy hiệu bạc75 Huy hiệu Đồng6 gold badges33 silver badges75 bronze badges Từ hướng dẫn: 2 giống hệt với Điều tương tự cũng đúng với các biến thể 3.Đã trả lời ngày 3 tháng 11 năm 2011 lúc 11:46Nov 3, 2011 at 11:46
Ferdinand Beyerferdinand BeyerFerdinand Beyer 62.7K15 Huy hiệu vàng151 Huy hiệu bạc143 Huy hiệu đồng15 gold badges151 silver badges143 bronze badges 1 sẽ tạo cảnh báo khi nó không tìm thấy tệp, nhưng 5 sẽ tạo ra một lỗi nghiêm trọng.Một điều nữa là nếu tập tin được bao gồm trước đó. Sau đó 5 sẽ không bao gồm nó một lần nữa.
Đã trả lời ngày 3 tháng 11 năm 2011 lúc 11:48Nov 3, 2011 at 11:48
MarcxmarcxRukmi Patel 6.7264 Huy hiệu vàng46 Huy hiệu bạc69 Huy hiệu Đồng9 gold badges28 silver badges41 bronze badges Tôi đã sử dụng chức năng như dưới đây:
Có các giá trị không đổi được khai báo trong xyz.php. Tôi phải gọi chức năng dosome () này từ tệp tập lệnh PHP khác.146 gold badges85 silver badges119 bronze badges Nhưng tôi đã quan sát hành vi trong khi gọi hàm này trong một vòng lặp, đối với việc lặp đầu tiên () đã nhận được các giá trị không đổi trong 0, nhưng sau đó mỗi lần lặp 1 không thể nhận được các giá trị không đổi được khai báo trong 0.Oct 25, 2015 at 15:39
mp31415mp31415mp31415 Tôi đã giải quyết vấn đề của mình bằng cách chuyển từ
Prashantprashantrequire_once for all time. 4.3346 Huy hiệu vàng33 Huy hiệu bạc75 Huy hiệu ĐồngJul 7, 2015 at 4:13
Từ hướng dẫn: 2 giống hệt với 1 ngoại trừ khi thất bại, nó cũng sẽ tạo ra lỗi mức 3 gây tử vong. Nói cách khác, nó sẽ tạm dừng tập lệnh trong khi 1 chỉ phát ra cảnh báo ( 5) cho phép tập lệnh tiếp tục.Điều tương tự cũng đúng với các biến thể 3.
Đã trả lời ngày 3 tháng 11 năm 2011 lúc 11:46Sep 17, 2017 at 10:20
Ferdinand Beyerferdinand BeyerRotimi 62.7K15 Huy hiệu vàng151 Huy hiệu bạc143 Huy hiệu đồng4 gold badges17 silver badges27 bronze badges 1 sẽ tạo cảnh báo khi nó không tìm thấy tệp, nhưng 5 sẽ tạo ra một lỗi nghiêm trọng.Một điều nữa là nếu tập tin được bao gồm trước đó. Sau đó 5 sẽ không bao gồm nó một lần nữa.Examples:
Rukmi Patelrukmi Patel
2.5999 Huy hiệu vàng28 Huy hiệu bạc41 Huy hiệu đồng
Có các giá trị không đổi được khai báo trong xyz.php. Tôi phải gọi chức năng dosome () này từ tệp tập lệnh PHP khác.146 gold badges85 silver badges119 bronze badges Nhưng tôi đã quan sát hành vi trong khi gọi hàm này trong một vòng lặp, đối với việc lặp đầu tiên () đã nhận được các giá trị không đổi trong 0, nhưng sau đó mỗi lần lặp 1 không thể nhận được các giá trị không đổi được khai báo trong 0.Nov 22, 2017 at 8:20
0 Tôi đã giải quyết vấn đề của mình bằng cách chuyển từ 5 sang 1, mã 1 được cập nhật như dưới đây:Ngoài ra: Tôi khuyên bạn nên thêm
Bởi vì khi yêu cầu_once giết trang, đôi khi nó có thể lặp lại thư mục của các tệp trang web của bạn Đây là một chức năng tùy chỉnh tôi đã thực hiện để yêu cầu các tệp: 0Ví dụ sử dụng: 1Đã trả lời ngày 10 tháng 4 năm 2019 lúc 20:23Apr 10, 2019 at 20:23
8 Tạo lỗi nghiêm trọng khi dừng thực hiện dòng tiếp theo trong khi không tìm thấy tệp. 1 Tạo cảnh báo nhưng không dừng thực thi dòng tiếp theo trong khi không tìm thấy tệp. 2 làm giống như 8 làm nhưng nó sẽ kiểm tra xem tệp có được tải hoặc không được thực thi hay không. 9 làm giống như 1 làm nhưng nó sẽ kiểm tra xem tệp có được tải hoặc không được thực thi hay không.Lưu ý: 9 hoặc 2 có thể được sử dụng trong trường hợp có cùng một tệp có thể được bao gồm và đánh giá nhiều lần trong quá trình thực hiện tập lệnh cụ thể, vì vậy trong trường hợp này, nó có thể giúp tránh các vấn đề như xác định lại chức năng, xác định lại giá trị biến, v.v.
Statosdotcom 3.0792 Huy hiệu vàng16 Huy hiệu bạc39 Huy hiệu đồng2 gold badges16 silver badges39 bronze badges Đã trả lời ngày 25 tháng 5 lúc 18:01May 25 at 18:01
Md. Ziyed uddinmd. Ziyed UddinMd. Ziyed Uddin 1721 Huy hiệu vàng1 Huy hiệu bạc10 Huy hiệu đồng1 gold badge1 silver badge10 bronze badges Đó thường là vấn đề bạn có muốn tải thư viện máy khách có điều kiện hay tiếp tục và tải nó cho dù bạn sẽ sử dụng nó hay không. Đây là ví dụ cụ thể; Xây dựng về những gì PCJ nói. Giả sử bạn có tệp cấu hình lưu trữ tên người dùng và mật khẩu cơ sở dữ liệu của mình (conf.php): 2Và một lớp có chức năng tĩnh sử dụng cơ sở dữ liệu: 3Và hàm tĩnh đó được sử dụng bên trong một hàm khác đang được gọi là lặp đi lặp lại bên trong một vòng lặp: 4Bạn chỉ có thể yêu cầu/bao gồm lớp một lần. Nếu bạn yêu cầu/bao gồm nó trên mọi lần lặp của vòng lặp của bạn, bạn sẽ gặp lỗi. Tuy nhiên, bạn phải bao gồm tệp conf của mình mỗi khi hàm tĩnh được gọi. 5Tất nhiên, di chuyển nó ra bên ngoài chức năng có thể là một giải pháp cho vấn đề đó: 6Trừ khi bạn quan tâm đến chi phí tải một lớp chỉ có thể được sử dụng trong một số điều kiện nhất định và không muốn tải nó khi không. Đã trả lời ngày 12 tháng 5 năm 2020 lúc 18:41May 12, 2020 at 18:41
Adam Winteradam mùa đôngAdam Winter 1.4041 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng1 gold badge10 silver badges24 bronze badges 8 có chi phí cao hơn 1, vì nó phải phân tích tệp trước. Thay thế 10 bằng 11 thường là một kỹ thuật tối ưu hóa tốt.
Đã trả lời ngày 14 tháng 11 năm 2012 lúc 19:52Nov 14, 2012 at 19:52
BinkbinkBink Phù hiệu bằng đồng 16144 bronze badges 1 Chỉ cần sử dụng yêu cầu và bao gồm. Bởi vì hãy nghĩ cách làm việc với bao gồm_once hoặc abor_once. Đó là tìm kiếm dữ liệu nhật ký lưu các tệp PHP bao gồm hoặc bắt buộc. Vì vậy, chậm hơn bao gồm và yêu cầu. 7Chỉ sử dụng như thế này ...
Đã trả lời ngày 6 tháng 8 năm 2015 lúc 8:44Aug 6, 2015 at 8:44
0 Sự khác biệt giữa bao gồm_once () và abor_once () trong PHP là gì?Chúng là tất cả các cách bao gồm các tập tin. Yêu cầu có nghĩa là nó cần nó. Yêu cầu_once có nghĩa là nó sẽ cần nó nhưng chỉ yêu cầu nó một lần. Bao gồm có nghĩa là nó sẽ bao gồm một tệp nhưng nó không cần nó tiếp tục.Include means it will include a file but it doesn't need it to continue.
Yêu cầu_once có nghĩa là gì trong PHP?Từ khóa Yêu cầu_once được sử dụng để nhúng mã PHP từ một tệp khác. Nếu không tìm thấy tệp, một lỗi nghiêm trọng sẽ được ném và chương trình dừng lại. Nếu tệp đã được bao gồm trước đó, câu lệnh này sẽ không bao gồm nó một lần nữa.used to embed PHP code from another file. If the file is not found, a fatal error is thrown and the program stops. If the file was already included previously, this statement will not include it again.
Sự khác biệt giữa yêu cầu () và bao gồm () là gì?Bao gồm () vs yêu cầu () Sự khác biệt duy nhất là câu lệnh bao gồm () tạo ra cảnh báo PHP nhưng cho phép thực hiện tập lệnh được tiến hành nếu không thể tìm thấy tệp.Đồng thời, câu lệnh yêu cầu () tạo ra một lỗi nghiêm trọng và chấm dứt tập lệnh.
Khi nào tôi nên sử dụng Yêu cầu_once VS yêu cầu trong PHP?Bằng cách sử dụng Yêu cầu (), tệp có thể được bao gồm nhiều lần trên cùng một trang web. By using require_once(), the file can only be included once on a web page. |