将文件包含在包含相同名称的函数的类中

时间:2016-01-17 20:56:35

标签: php wordpress mybb

我正在尝试构建一个类来桥接mybb和Wordpress。

当我将mybb函数包含到Wordpress中时,有一些共享相同的名称,因此会产生PHP错误。

有没有什么方法可以包含mybb源但只是将变量传递给主脚本而不会导致WordPress错误..基本上我需要一个包含mybb源的函数,并且还允许我将变量传递给它但保留包含隔离的文件,以免与共享相同名称的Wordpress函数发生冲突。

我是一名PHP开发人员,我对OOP的工作方式比较熟悉,但远非专家,但他们理解任何人都有的解决方案。我已经构建了这个类,但我遇到了函数名称问题

1 个答案:

答案 0 :(得分:0)

同一个类中的两个完全相同的函数名在PHP中确实无效。但是,从PHP5开始,您可以使用名称空间。因此,您可以使用相同的类名,具有相同的函数名,但具有不同的名称空间(基础)。

您可以做的是为mybb-class创建一个名称空间,为Wordpress-class创建一个名称空间。看起来像:

----
#file1.php full name is \mybb\ClassX
namespace \mybb;

class ClassX
{
  .. implementation ..

  public function SameName($a, $b)
  {
  }
}

----
#file2.php full name is \wordpress\ClassX
namespace \wordpress;
use \mybb\ClassX;

class ClassX
{
  .. implementation ..

  public $mybbClass;

  public function ClassX()
  {
    $mybbClass = new \mybb\ClassX();
    $mybbClass->FunctionWithSameName(1, 2);
  }
  public function FunctionWithSameName($a, $b)
  {
  }
}

有关命名空间用法的完整参考,请参阅此链接: http://php.net/manual/en/language.namespaces.php