在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_once?
在PHP中:
什么时候应该使用require和include? 什么时候应该使用require_once vs. include_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_once()加载依赖项(类、函数、常量)。
使用require()加载类似模板的文件。
使用include_once()加载可选依赖项(类、函数、常量)。
使用include()加载可选的模板类文件。
require文件必须存在,如果不存在则会显示错误;而使用include -如果文件不存在,那么页面将继续加载。
对于可重用的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的开销比include大,因为它必须首先解析文件。用包含替换require通常是一种很好的优化技术。