在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
在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并不重要。
无论何时使用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将一次包含该文件,但会停止进一步执行。
7年后的2018年,答案揭晓
这个问题是七年前提出的,没有一个答案能对这个问题提供实际帮助。在现代PHP编程中,您主要只使用require_once一次来包含自动加载器类(通常是编写器自动加载器),它将加载所有的类和函数(函数文件需要显式地添加到编写器中。Json文件可在所有其他文件)。如果你的类不能从自动加载器加载,你可以使用require_once来加载它。
有些场合我们需要使用require。例如,如果你有一个非常大的数组定义,而你不想把它添加到你的类定义源代码中,你可以:
<?php
// arry.php
return ['x'=>'y'];
<?php
//main.php
$arr= require 'arry.php'
如果你打算包含的文件包含一些可执行的文件或声明了一些变量,你几乎总是需要使用require,因为如果你使用require_once除了第一个地方,你的代码将不会被执行和/或你的变量将不会无声地初始化,导致绝对难以精确定位的错误。
实际上,include和include_once没有实际用例。
什么时候应该使用require或include? require和include函数执行相同的任务,即包含并计算指定的文件,但不同的是,当指定的文件位置无效或任何错误时,require将导致致命错误,而include将生成警告并继续代码执行。 因此,当您试图包含的文件是系统的核心,可能会对其余代码造成巨大影响时,您可以使用require函数;当您试图包含的文件是一个包含一些不太重要的代码的简单文件时,您可以使用include函数。 我个人的建议(对于不太重要的代码)是在开发阶段在代码中到处使用require函数,这样你就可以调试代码,然后在将其转移到生产环境之前用include函数替换所有的require函数,这样即使你遗漏了任何错误,也不会影响最终用户,其余的代码也能正常执行…… 什么时候应该使用require_once或require? require和require_once之间的基本区别是require_once将检查文件是否已经包含,如果已经包含,则不包含该文件,而require函数将包括该文件,而不管文件是否已经包含。 因此,当你想要一次又一次地包含某段代码时,使用require函数,而如果你只想在代码中包含某段代码一次,则使用require_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()来确保所需的文件被包含并且不会丢失。