2010-09-02 103 views
1

我试图定义它,当一个值赋给一个静态类属性:Zend和静态类属性

namespace Base; 

abstract class Skeleton { 

protected static $entityManager = \Zend_Registry::get("EntityManager"); 
    ... 
} 

当我尝试执行此代码,我得到这个错误:

Parse error: syntax error, unexpected '(', expecting ',' or ';' in /var/www/ 
somewhere/application/models/Base/Skeleton.php on line 6 

如果我只是给它分配一个简单的字符串值:

protected static $entityManager = "string"; 

没有问题。我在做PHP不能处理的事情吗?如果是这样,如何解决这个问题?

回答

3

你不能把需要执行的代码作为一个类变量,是否为静态的。

想一想,Zend_Registry::get("EntityManager")在哪一点被执行,当创建类时因为已将其设置为static而无法执行。

即使它不是静态的,Zend_Registry::get("EntityManager")何时运行?当对象被实例化或一次?它需要放在课堂上的一个功能。