我试图限定它,当一个值分配给一个静态类属性:

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和自举过程中设置的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top