PHP函数范围失败

时间:2013-04-05 22:27:57

标签: php api class function scope

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

以下函数位于引用类的文件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();。所有这三个选项都会简单地删除剩下的代码,我只能得出结论 - 好吧,我没有结论。

非常感谢任何帮助。

1 个答案:

答案 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,那么如果该常量不存在,您将在错误日志中收到通知。

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