{PHP} constructeur static (ou comment avoir un objet membre static)

Je désire avoir un objet Converter comme membre static de ma classe :

class MaClasse {
  private static $_statusConverter = new Converter();

  private $_name;
  private $_date;
  public function __construct() {
    //...
  }
}

Sauf que bien sûr ça n’est pas possible car je ne peux pas faire de new Class() dans le corps de la classe.
En Java il existe un concept de « constructeur statique » : la même chose existe-il en PHP5 ?

Non, pas en php5 (à voir sur php5.3 & 6)

Mais tu peux faire l’initialisation après la déclaration de ta classe. Genre MaClasse::init(); qui ferait le sale boulot pour toi.

Ah oui :clap:
J’étais justement partit pour faire le new après la déclaration de la classe mais ça forçait à avoir mon membre en public :-/

Mais faire une fonction statique init() que j’appelle derrière est encore mieux.

class MyClass {
	protected static $_var;

	public static function init() {
		self::$_var = new OtherClass();
	}
}
MyClass:init();

Voilà. Ensuite, vérifie dans la doc s’il n’y a pas mieux, car ce bousin est tout sauf bien (ta méthode est publique, donc quand on recharge la classe :/)

cf. www.php.net…

Pour ce que j’en fait ça n’est vraiment pas grave :
Je créer un Traducteur qui travaille selon un array de strings.
Sauf que ces chaînes sont spécifiques à MyClass, différentes dans MySecondClass et également dans MyOtherClass.