2012-01-11 49 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