在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
当前回答
它们都是包含文件的方法。
Require意味着它需要它。Require_once意味着它将需要它,但只需要它一次。包含意味着它将包含一个文件,但不需要它继续。
例子:
Require 'filename'
Require_once 'filename'
Include 'filename'
还有一个include_once函数,它只包含一个文件一次。
Include_once 'filename'
当我用手机打字时,不要用大写字母。
其他回答
需要关键部分,如授权,并包括所有其他部分。
多重包含是非常糟糕的设计,必须完全避免。所以,*_once并不重要。
要求生成致命错误,停止下一行执行,而没有找到文件。
包括生成警告,但没有停止下一行执行,而没有找到文件。
Require_once do与require do相同,但它将检查文件是否已经加载或是否要执行。
Include_once do与include do相同,但它将检查文件是否已经加载或是否要执行。
注意:include_once或require_once可能用于在特定脚本执行期间包含同一个文件并对其进行多次计算的情况,因此在这种情况下,它可能有助于避免诸如函数重新定义、变量值重新赋值等问题。
对于可重用的PHP模板,使用“include”。使用“require”表示必需的库。
“*_once”很好,因为它检查文件是否已经加载,但它只在“require_once”中对我有意义。
我使用的函数如下:
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中定义的常量值。
区别在于命令生成的错误。使用require,您想要使用的文件确实是必需的,因此如果找不到它,将生成一个E_ERROR。
require()与include()相同,除了失败时它也会产生致命的E_ERROR级别错误。
include只在失败时生成一个E_WARNING错误,该错误或多或少是沉默的。
因此,如果需要该文件才能使其余代码正常工作,并且您希望脚本失败,则使用该文件。
* _once ():
Include_once()可以在脚本的特定执行过程中多次包含和计算相同文件的情况下使用,因此在这种情况下,它可以帮助避免诸如函数重新定义、变量值重新赋值等问题。
当然,同样适用于require_once()。
引用:require(), include_once()