2
我正在開發一個軟件項目,並且注意到在查看其他項目的代碼(如Zend Framework)時,他們使用某種繼承的多級類。在PHP中創建多級類
一個例子是$system->sessions->closeSession()
。我知道對象提供了類似的功能,但我不知道它們可以用於實際的可調用方法。
如何使用此技術創建班級?
我正在開發一個軟件項目,並且注意到在查看其他項目的代碼(如Zend Framework)時,他們使用某種繼承的多級類。在PHP中創建多級類
一個例子是$system->sessions->closeSession()
。我知道對象提供了類似的功能,但我不知道它們可以用於實際的可調用方法。
如何使用此技術創建班級?
沒什麼特別的。在模糊的非功能僞代碼中:
class Zend_Session {
function closeSession() { ... }
}
class zend {
public $sessions;
function __construct() {
$this->sessions = new Zend_Session;
}
}
謝謝,我現在得到它:)我沒有意識到這很簡單!我的應用程序現在會更順暢。 – Forest 2013-02-13 19:22:21
雖然這些類可以很好地使用繼承(使用'extends'關鍵字定義),它本身並不是繼承。對象'$ system'具有'$ sessions'的公共屬性,它本身就是一個對象,並且具有'closeSession'方法。一般來說,公共屬性不是最好的方法:'$ sessions'應該是一個公共'getSessions()'方法,以保持它是隻讀的。 – halfer 2013-02-13 19:21:13
此外,我發現有一個getter方法和適當的phpdoc註釋在類型暗示條款比公共屬性更可靠,雖然這可能只是一個Netbeans打嗝':)' – halfer 2013-02-13 19:23:32