2012-01-11 50 views
0

這是怎麼了,我一直訪問從我的控制器模型方法:訪問模型方法與Zend

$contactsTable = new Application_Model_DbTable_ContactsBasics(); 
$contact = $basicsTable->getContact($contacts_id); 

我如何可以做同樣通過做這樣的嗎?

$contact = Application_Model_DbTable_ContactsBasics::getContact($contacts_id); 

我找到第二個方法更快,更容易一些閱讀,我有什麼做使它工作,我已經嘗試過,但它不工作。

回答

3

要實現您的目標,您必須聲明getContact()方法爲static。無論如何,只有當它有意義時才應聲明靜態方法,而不僅僅是因爲「更具可讀性」的代碼。

+1

謝謝你在正確的方向向我傾斜,我讀了[靜態方法](http://php.net/manual/en/language.oop5.static.php),我碰到這個:_Because靜態方法可以在沒有創建對象實例的情況下進行調用,僞變量$ this在聲明爲靜態的方法內不可用._我不會使用靜態方法,因爲我在模型中使用了$ this變量。 – MikeGA 2012-01-12 00:02:02

+0

你可以檢查你是否可以用'self'替換$ this, – BartekR 2012-01-13 07:34:04