在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
当前回答
基本上,如果您需要一个错误的路径,PHP会抛出一个致命错误,并调用shutdown函数,但是当您包含一个错误的路径时,PHP将继续执行,但它只会显示一个警告,表明文件不存在。
根据英文单词require, PHP被告知页面或文件的执行取决于所需的文件。
根据我的经验,通常需要重要的文件,如配置文件、数据库类和其他重要的实用程序。
其他回答
需要关键部分,如授权,并包括所有其他部分。
多重包含是非常糟糕的设计,必须完全避免。所以,*_once并不重要。
在PHP中,有4个类似的函数用于包含和要求文件:
include(): include()语句用于将一个文件的内容包含到另一个文件中。如果无法找到包含的文件,将生成警告,但脚本将继续执行。
require(): require()语句类似于include,但是如果找不到文件,它会生成一个致命错误。脚本将立即停止执行。
include_once(): include_once()语句与include相同,但它只包含文件一次,即使在同一个脚本中包含多次。
require_once(): require_once()语句与require相同,但它只包含文件一次,即使它在同一个脚本中包含多次。
简单来说:
当您希望包含一个文件并在文件丢失的情况下继续执行脚本时,使用include()。
当您需要包含一个文件并在文件丢失时停止执行脚本时,请使用require()。
当您希望只包含一次文件时,请使用include_once()或require_once(),以避免出现重复函数或变量的问题。
注意:一般情况下,建议使用require_once()而不是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将一次包含该文件,但会停止进一步执行。
在PSR-0 / PSR-4自动加载器时代,如果您所需要的只是让一些函数/类对您的代码可用,则可能完全没有必要使用任何语句(当然,如果您仍然使用PHP作为模板引擎,则仍然需要在引导文件中require_once自动加载器本身并包含模板)。
Include / Require你也可以包含同一个文件不止一次:
require()与include()相同,除了失败时,它也会产生致命的E_COMPILE_ERROR级别的错误。换句话说,它将停止脚本,而include()只发出一个允许脚本继续的警告(E_WARNING)。
Require_once / include_once
和include/require是一样的,除了PHP会检查文件是否已经被包含,如果已经被包含,就不再包含(require)它。