2013-02-13 51 views
2

我正在開發一個軟件項目,並且注意到在查看其他項目的代碼(如Zend Framework)時,他們使用某種繼承的多級類。在PHP中創建多級類

一個例子是$system->sessions->closeSession()。我知道對象提供了類似的功能,但我不知道它們可以用於實際的可調用方法。

如何使用此技術創建班級?

+1

雖然這些類可以很好地使用繼承(使用'extends'關鍵字定義),它本身並不是繼承。對象'$ system'具有'$ sessions'的公共屬性,它本身就是一個對象,並且具有'closeSession'方法。一般來說,公共屬性不是最好的方法:'$ sessions'應該是一個公共'getSessions()'方法,以保持它是隻讀的。 – halfer 2013-02-13 19:21:13

+0

此外,我發現有一個getter方法和適當的phpdoc註釋在類型暗示條款比公共屬性更可靠,​​雖然這可能只是一個Netbeans打嗝':)' – halfer 2013-02-13 19:23:32

回答

2

沒什麼特別的。在模糊的非功能僞代碼中:

class Zend_Session { 
    function closeSession() { ... } 
} 

class zend { 
    public $sessions; 
    function __construct() { 
     $this->sessions = new Zend_Session; 
    } 
} 
+0

謝謝,我現在得到它:)我沒有意識到這很簡單!我的應用程序現在會更順暢。 – Forest 2013-02-13 19:22:21