题
我试图限定它,当一个值分配给一个静态类属性:
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";
Everyting是好的。我是不是PHP不能处理?如果是这样,如何解决这个?
解决方案
可以不把代码,需要执行作为类变量,静态或不
想想看,在这一点确实Zend_Registry::get("EntityManager")
得到执行,当创建类,因为你已经把它设置为static
它不能执行。
即使它不是静态的,什么时候Zend_Registry::get("EntityManager")
得到运行?当对象被实例化或一次?它需要被放置在里面的类的功能。
其他提示
[类成员变量]可以包括一个初始化,但此初始化必须是一个恒定值 - 即,它必须能够在编译时进行评估,并在顺序必须不依赖于运行时信息进行评估。
添加setter和自举过程中设置的值。
不隶属于 StackOverflow