FraFu: Klassenvariablen initialisieren

Beitrag lesen

Hallo!»» Hi!

Warum funktioniert folgender Code nicht?

class A{
}

class B{
protected $a=array(new A());
}

Meldung:
Parse error: syntax error, unexpected T_NEW, expecting ')' in C:\temp\test.php on line 7

Lies dir doch mal den Eintrag im Manual zu »new« durch. Das dürfte deine Frage beantworten:
»To create an instance of an object, a new object must be created and assigned to a variable.«

Ich dachte das wird hier imlizit zugewiesen.
Warum funktioniert dann aber folgender Code?

class A{
}

class B{
 protected $a=null;
 public function __construct(){
  $this->a=array(new A());
 }
}

Der einzige Unterschied ist, dass hier die Zuweisung im Konstruktor erfolgt.

mfg
 Franz