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


Include file into class that contains functions that are named identically

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

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

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

我是一名PHP开发人员,我对OOP的工作原理相对熟悉,但远非专家,但我了解任何人的任何解决方案。我已经构建了该类,但我遇到了函数名称问题

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

你可以做的是为mybb类创建一个命名空间,为Wordpress类创建一个命名空间。看起来像这样:

----
#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