无法重新声明功能

时间:2016-02-18 21:11:16

标签: php

我的文件结构如下。

  1. 脚本A - >包括脚本C(记录器脚本)和脚本B。
  2. 脚本B - >包括脚本C(记录器脚本)
  3. 脚本C - >记录器脚本。包含一些常量定义和记录功能。
  4. 因此,如果我在脚本A和B中都包含脚本C,则会重新声明错误函数。

    如果我没有在脚本B中包含它,我会收到未定义的函数错误。

    脚本B包含脚本A将使用的一些其他函数定义。

    我运行脚本A,它应该开始记录...从脚本B调用一个函数,然后脚本B开始登录另一个记录器实例。

    我尝试过include_once和require_once。但无济于事。他们都给了我与使用include或require相同的结果。

    编辑1:我没有发布代码,因为它很长,我需要先检查一下我是否遗漏了一些基本概念。

3 个答案:

答案 0 :(得分:1)

使用require_onceinclude_once来避免功能的重新声明

require_once 'scriptC.php';
require_once 'scriptB.php';

include_once 'scriptC.php';
include_once 'scriptB.php';

这将确保您的每个包含仅加载一次。

答案 1 :(得分:0)

我解决了。这是我包含文件的顺序。

我弄乱了包含顺序,它在编译脚本A时包括两次。我通过更改脚本A中包含语句的顺序并从脚本B中删除包含来修复它

答案 2 :(得分:-2)

包裹函数如此

if ( ! function_exists('foo'))
{
  function foo($bar)
  { 
    ... 
  }
}