2010-09-02 5 views
1

J'essaie d'attribuer une valeur à une propriété de classe statique lorsque définir:propriétés classe Zend et statique

namespace Base; 

abstract class Skeleton { 

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

Lorsque je tente d'exécuter ce code je reçois cette erreur:

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

Si je viens attribuer une valeur de chaîne simple à elle:

protected static $entityManager = "string"; 

Everyting est très bien. Est-ce que je fais quelque chose que PHP ne peut pas gérer? Si oui, comment résoudre cela?

Répondre

3

Vous ne pouvez pas mettre du code à exécuter en tant que variable de classe, statique ou non.

y pense, à quel point le fait Zend_Registry::get("EntityManager") s'exécuté, il ne peut pas être exécutée lorsque la classe est créée parce que vous avez défini comme static.

Même s'il n'était pas statique, quand est-ce que Zend_Registry::get("EntityManager") est exécuté? Lorsque l'objet est instancié ou une fois? Il doit être mis dans une fonction à l'intérieur de la classe.

Questions connexes