我正在努力了解范围以及阻止我的新代码工作的原因(假设这是一个范围问题)。
以下函数位于引用类的文件PATH.'/includes/custom-functions.php'
中:
function infusion() {
require_once(PATH.'/classes/infusion.php'); //PATH is defined in WordPress from ~/wp-content/themes/theme/
return new infusion();
}
该类依赖PATH.'/api/isdk.php'
和/api/
目录中另一个文件的连接凭据。从PATH .'/includes/custom-functions.php'
开始,我有许多其他函数可以调用$infusion = infusion();
并且工作得很好。
问题
我创建了一个新文件:PATH.'/includes/report.php'
我需要访问$infusion = infusion();
,但无法通过重复上面的function infusion()
定义来开始工作;使用require_once();
;或使用include();
。所有这三个选项都会简单地删除剩下的代码,我只能得出结论 - 好吧,我没有结论。
非常感谢任何帮助。
答案 0 :(得分:1)
我假设代码没有使用名称空间,因此不允许重新声明infusion
函数(通过重新定义函数或重新包含类)。
您的includes/report.php
文件应该只包含:
require_once PATH.'/includes/custom-functions.php';
// your other code here ...
$infusion = infusion();
可能是您在文件中包含的其他文件/类已经需要custom-functions.php
,因此您可以完全跳过它。另请注意,PATH
常量应该已在某处(直接或通过include
d文件)定义,然后再尝试使用它。如果您将error_reporting
设置为包含E_ALL
,那么如果该常量不存在,您将在错误日志中收到通知。
如果失败,您的错误日志可能会提供有关您的问题的一些额外背景信息。