在PHP中:

什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?


当前回答

当需要加载任何类、函数或依赖项时,请使用require函数。 当你想加载模板样式的文件时,使用include函数

如果您仍然感到困惑,就一直使用require_once。

其他回答

Include()如果不能包含该文件将抛出警告,但脚本的其余部分将运行。

require()将抛出一个E_COMPILE_ERROR并在脚本不能包含该文件时停止脚本。

如果文件已经被包含,include_once()和require_once()函数将不会第二次包含该文件。

请参见以下文档页面:

包括 需要 include_once require_once

Include()在未找到文件时将生成警告,但require_once()将生成致命错误。

另一件事是之前是否包含了file。然后require_once()将不再包含它。

我的建议是99.9%的情况下只使用require_once。

而使用require或include则意味着你的代码在其他地方是不可重用的,也就是说,你正在导入的脚本实际上是在执行代码,而不是提供一个类或一些函数库。

如果你需要/包含当场执行的代码,那就是过程代码,你需要了解一种新的范式。比如面向对象编程,基于函数的编程,或者函数式编程。

如果您已经在进行面向对象或函数式编程,那么使用include_once主要会延迟在堆栈中发现错误/错误的地方。您是否希望在稍后调用do_cool_stuff()函数时知道它不可用,或者在通过要求库而期望它可用的时候知道它不可用?通常,最好立即知道您需要和期望的东西是否不可用,因此只需使用require_once。

或者,在现代OOP中,只需在使用时自动加载你的类。

当需要加载任何类、函数或依赖项时,请使用require函数。 当你想加载模板样式的文件时,使用include函数

如果您仍然感到困惑,就一直使用require_once。

对于可重用的PHP模板,使用“include”。使用“require”表示必需的库。

“*_once”很好,因为它检查文件是否已经加载,但它只在“require_once”中对我有意义。