2011-12-23 16 views
1

我有一個叫做「user」的類,帶有一個函數「createAccount」。在其中,我喜歡通過PostageApp訪問另一個班級:郵件那麼我如何在PHP中創建一個全球化的類名呢?

但是,由於此類超出範圍,因此無法訪問。 global接縫僅適用於變量。那麼,我怎樣才能讓班級名稱成爲全球?

include_once('../../ext_scripts/postageapp_class.inc'); 

class user { 
    function createAccount(...) { 
    global PostageApp; 

    [...] 

    $result = PostageApp::mail($mailTo, '', 'verify_email', array()); 
    } 
} 
+2

默認情況下,類標識符是全局的。除非你的兩個人中的一個生活在命名空間中。 – mario 2011-12-23 10:05:59

+1

謝謝,我剛發現,包含路徑是錯誤的。這就是爲什麼PostageApp不知道。 – JochenJung 2011-12-23 10:08:22

+2

我建議你使用'require'而不是'include'作爲強制源文件。 – JJJ 2011-12-23 10:10:19

回答

2

如果您確定該類已被定義在一個包含文件中,則只有一件事會影響其在另一個文件中的可見性:我認爲PostageApp類是另一個namespace,因爲這是另一個類的唯一原因在PHP中可以有不同的範圍。

關鍵字global僅適用於全局變量。函數和類一旦聲明就可以在任何範圍內訪問。

3

類有你使用它之前定義的,所以你必須使用requirerequire_once包括與您PostageApp類定義文件。

沒有全球性的課程概念。

如果您不想添加require,我建議您查看autoloading

相關問題