在PHP中:

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


当前回答

Include / Require你也可以包含同一个文件不止一次:

require()与include()相同,除了失败时,它也会产生致命的E_COMPILE_ERROR级别的错误。换句话说,它将停止脚本,而include()只发出一个允许脚本继续的警告(E_WARNING)。

Require_once / include_once

和include/require是一样的,除了PHP会检查文件是否已经被包含,如果已经被包含,就不再包含(require)它。

其他回答

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

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

Use

需要 当你的应用程序需要这个文件时,例如一个重要的消息模板或一个包含配置变量的文件,如果没有这些文件应用程序将会崩溃。 require_once 当文件包含的内容会在后续包含时产生错误时,例如。 Function important() {/* important code */}在你的应用程序中肯定是需要的,但由于函数不能被重新声明,所以不应该再次包含。 包括 当文件不是必需的,应用程序流程应该继续时,没有找到,例如 对于模板引用当前作用域的变量或其他东西非常有用 include_once 可选的依赖关系,会在后续加载时产生错误,或者可能远程文件包含,由于HTTP开销,您不希望发生两次

但基本上,什么时候用哪种取决于你。

摘自手册:

require()与include()相同,除了失败时,它也会产生致命的E_COMPILE_ERROR级别的错误。换句话说,它将停止脚本,而include()只发出一个允许脚本继续的警告(E_WARNING)。

对于_once()变量也是如此。

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

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

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

请参见以下文档页面:

包括 需要 include_once require_once

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

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