我正在尝试构建一个类来桥接mybb和Wordpress。
当我将mybb函数包含在Wordpress中时,有几个共享相同的名称,因此这会产生PHP错误。
有什么方法可以包含mybb源代码,但只需将变量传递给主脚本而不会Wordpress抛出错误。本质上,我需要一个包含 mybb 源的函数,还允许我将变量传递给它,但保持包含的文件隔离,以免导致与共享相同名称的 Wordpress 函数发生冲突。
我是一名PHP开发人员,我对OOP的工作原理相对熟悉,但远非专家,但我了解任何人的任何解决方案。我已经构建了该类,但我遇到了函数名称问题
同一类中两个完全相同的函数名在 PHP 中确实无效。但是,从 PHP5 开始,您可以使用命名空间。因此,您可以具有相同的类名,具有相同的函数名称,但具有不同的命名空间(base)。
你可以做的是为mybb类创建一个命名空间,为Wordpress类创建一个命名空间。看起来像这样:
----
#file1.php full name is mybbClassX
namespace mybb;
class ClassX
{
.. implementation ..
public function SameName($a, $b)
{
}
}
----
#file2.php full name is wordpressClassX
namespace wordpress;
use mybbClassX;
class ClassX
{
.. implementation ..
public $mybbClass;
public function ClassX()
{
$mybbClass = new mybbClassX();
$mybbClass->FunctionWithSameName(1, 2);
}
public function FunctionWithSameName($a, $b)
{
}
}
有关命名空间用法的完整参考,请参阅此链接:http://php.net/manual/en/language.namespaces.php