在PHP中:

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


当前回答

无论何时使用require_once(),当您在当前文件中只需要被调用的文件一次时,可以在文件中使用require_once()来包含另一个文件。 在这个例子中,我有一个test1.php。

<?php  
echo "today is:".date("Y-m-d");  
?>  

在另一个文件中,命名为test2.php

<?php  
require_once('test1.php');  
require_once('test1.php');  
?>

当你看到m需要test1文件两次,但该文件将包含test1一次,而在第二次调用时,这将被忽略。并且不停止将显示输出一次。

当你在使用'include_once() '时,当你在当前文件中需要调用的文件不止一次时,可以在一个文件中使用'include_once() '来包含另一个文件。 在本例中,我有一个名为test3.php的文件。

<?php  
echo "today is:".date("Y-m-d");  
?> 

在另一个文件中,命名为test4。php

<?php  
include_once('test3.php');  
include_once('test3.php');  
?>

在您观察时,包含test3文件的m将一次包含该文件,但会停止进一步执行。

其他回答

_once函数与不含_once函数的区别: 没有_once函数的代码将被再次包含,而有_once函数的PHP会跟踪被包含的文件,并且只包含它一次。

require和include的区别: 如果没有找到所需的文件,PHP将发出致命错误,而for include只会发出警告。

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

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

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

请参见以下文档页面:

包括 需要 include_once require_once

 

什么时候应该使用require或include? require和include函数执行相同的任务,即包含并计算指定的文件,但不同的是,当指定的文件位置无效或任何错误时,require将导致致命错误,而include将生成警告并继续代码执行。 因此,当您试图包含的文件是系统的核心,可能会对其余代码造成巨大影响时,您可以使用require函数;当您试图包含的文件是一个包含一些不太重要的代码的简单文件时,您可以使用include函数。 我个人的建议(对于不太重要的代码)是在开发阶段在代码中到处使用require函数,这样你就可以调试代码,然后在将其转移到生产环境之前用include函数替换所有的require函数,这样即使你遗漏了任何错误,也不会影响最终用户,其余的代码也能正常执行…… 什么时候应该使用require_once或require? require和require_once之间的基本区别是require_once将检查文件是否已经包含,如果已经包含,则不包含该文件,而require函数将包括该文件,而不管文件是否已经包含。 因此,当你想要一次又一次地包含某段代码时,使用require函数,而如果你只想在代码中包含某段代码一次,则使用require_once。

Require的开销比include大,因为它必须首先解析文件。用包含替换require通常是一种很好的优化技术。

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

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

Require_once / include_once

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