2016-01-17 103 views
0

我試圖構建一個類來橋接mybb和Wordpress。將文件包含到包含函數名稱相同的類中

當我將mybb函數包含到Wordpress中時,有一對共享相同的名稱,所以這會創建PHP錯誤。

有沒有什麼辦法可以包括mybb源代碼,只是將變量傳遞給主腳本而沒有Wordpress引發錯誤..本質上,我需要一個包含mybb源代碼的函數,並且還允許我將變量傳遞給它,但保留包括文件被隔離,以免與共享相同名稱的Wordpress函數產生衝突。

我是一名PHP開發人員,我對OOP的工作方式比較熟悉,但遠離專家,我明白任何人都有的解決方案。我已經創建了這個類,但是我堅持使用函數名稱問題

回答

0

在同一個類中,兩個完全相同的函數名在PHP中確實無效。但是,由於PHP5可以使用命名空間。因此,可以使用相同的類名稱,具有相同的函數名稱,但具有不同的名稱空間(基本)。

你可以做的是爲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

相關問題