在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
在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)它。
其他回答
require文件必须存在,如果不存在则会显示错误;而使用include -如果文件不存在,那么页面将继续加载。
要求生成致命错误,停止下一行执行,而没有找到文件。
包括生成警告,但没有停止下一行执行,而没有找到文件。
Require_once do与require do相同,但它将检查文件是否已经加载或是否要执行。
Include_once do与include do相同,但它将检查文件是否已经加载或是否要执行。
注意:include_once或require_once可能用于在特定脚本执行期间包含同一个文件并对其进行多次计算的情况,因此在这种情况下,它可能有助于避免诸如函数重新定义、变量值重新赋值等问题。
_once函数与不含_once函数的区别: 没有_once函数的代码将被再次包含,而有_once函数的PHP会跟踪被包含的文件,并且只包含它一次。
require和include的区别: 如果没有找到所需的文件,PHP将发出致命错误,而for include只会发出警告。
无论何时使用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将一次包含该文件,但会停止进一步执行。
我使用的函数如下:
function doSomething() {
require_once(xyz.php);
....
}
在xyz.php中声明了常量值。
我必须从另一个PHP脚本文件调用这个doSomething()函数。
但是我观察到在循环中调用此函数时的行为,对于第一次迭代doSomething()在xyz.php中获得常量值,但后来每次迭代doSomething()都无法获得xyz.php中声明的常量值。
我通过从require_once()切换到include()来解决我的问题,更新的doSomething()代码如下:
function doSomething() {
include(xyz.php);
....
}
现在对doSomething()的每次迭代调用都得到xyz.php中定义的常量值。