我的文件结构如下。
- 脚本 A --> 包括脚本 C(记录器脚本)和脚本 B。
- 脚本 B --> 包括脚本 C( A 记录器脚本 )
- 脚本 C --> 记录器脚本。包含几个常量定义和日志记录函数。
因此,如果我在脚本 A 和 B 中包含脚本 C,我会重新声明错误函数。
如果我不将其包含在脚本 B 中,则会出现未定义的函数错误。
脚本 B 包含脚本 A 将使用的一些其他函数定义。
我运行脚本 A,它应该开始记录...从脚本 B 调用函数,该函数又开始在不同的记录器实例中记录。
我试过include_once和require_once。但无济于事。它们都给了我与使用包含或要求相同的结果。
编辑1:我没有发布代码,因为它很长,我需要先检查我是否缺少一些基本概念。
使用require_once
或include_once
以避免重新声明函数
require_once 'scriptC.php';
require_once 'scriptB.php';
或
include_once 'scriptC.php';
include_once 'scriptB.php';
这将确保您的每个包含只加载一次。
我解决了。这是我包含文件的顺序。
我搞砸了包含顺序,在编译脚本 A 时它包含两次。我通过更改脚本 A 中包含语句的顺序并从脚本 B 中删除包含来修复它
像这样包装函数
if ( ! function_exists('foo'))
{
function foo($bar)
{
...
}
}