我正在尝试构建一个类来桥接mybb和Wordpress。
当我将mybb函数包含到Wordpress中时,有一些共享相同的名称,因此会产生PHP错误。
有没有什么方法可以包含mybb源但只是将变量传递给主脚本而不会导致WordPress错误..基本上我需要一个包含mybb源的函数,并且还允许我将变量传递给它但保留包含隔离的文件,以免与共享相同名称的Wordpress函数发生冲突。
我是一名PHP开发人员,我对OOP的工作方式比较熟悉,但远非专家,但他们理解任何人都有的解决方案。我已经构建了这个类,但我遇到了函数名称问题
答案 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