是否有任何函数可以恢复 require/require_once/include/include_once?
例如在脚本A中,我需要一个脚本B,它与其他脚本C具有共同的功能,并且我不知道以前是否需要C。所以我想在加载 B 之前从内存中“清理”脚本 C,以防止重复的函数。
require_once
- 这样的操作是安全的。请注意,包含后您的上下文将被更改 - 因此无法应用“反转”它。
如果您想覆盖某些功能 - 您始终可以这样做,它会正常工作。在声明之前您应该检查一下:
function_exists()
功能class_exists()
上课defined()
对于常量据我所知。
老实说,我的建议(假设您正在“清理”一些代码)是将脚本 B 和脚本 C 的通用功能抽象到另一个脚本 D 中,并在脚本 B 和 C 中使用 require_once/include_once 。
事情不是这样的。但是,您可以使用以下方法防止函数库出现函数命名冲突:
if (!function_exists('myfunction')) {
function myfunction($param) {
// ...
}
}
也就是说,如果你还没有在任何地方使用 require_once / include_once (你应该)。
您可以为文件命名空间以防止冲突:
<?php
namespace Foo {
function test() {
return __NAMESPACE__ . '::' . __FUNCTION__;
}
}
namespace Bar {
function test() {
return __NAMESPACE__ . '::' . __FUNCTION__;
}
}
namespace Baz {
var_dump(array(
\Foo\test(),
\Bar\test(),
));
}