3

我正在努力理解范围以及阻止我的新代码工作的原因(假设它是范围问题)。

以下函数位于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();. 所有这 3 个选项只会杀死其余的代码,我只能得出结论 - 好吧,我没有结论。

任何帮助将不胜感激。

4

1 回答 1

1

我假设代码没有使用命名空间,因此不允许您重新声明infusion函数(通过重新定义函数或重新包含类)。

您的includes/report.php文件应该简单地具有:

require_once PATH.'/includes/custom-functions.php';

// your other code here ...

$infusion = infusion();

可能是您包含在文件中的其他文件/类已经需要custom-functions.php沿线,因此您可以完全跳过它。另请注意,在您尝试使用该PATH常量之前,应该已经在某处(直接或通过 d 文件)定义了它。include如果您设置error_reporting为 include E_ALL,如果该常量不存在,您将在错误日志中收到通知。

如果失败,您的错误日志可能会提供一些关于您的问题的额外背景。

于 2013-04-05T22:33:33.743 回答