2017-09-12 7 views
0

私はコードの行を持っている:PHP:クラスのプロパティとしてオブジェクトのインスタンス化は、

class foo{ 
    public $object = new bar(2); 

    public function index(){ 
     dd($this->object); 
    } 
} 

barオブジェクトが含まれています。今

class bar{ 
    protected $number; 

    function __construct($number){ 
     $this->number = $number; 
    } 
} 

その私に投げConstant expression contains invalid operation

+0

最初の例では、クラスのプロパティをインスタンス化するための有効である値や式を示します - http://php.net/manual/en/language.oop5 .properties.php。残念ながら、あなたができることとできないことは、特に直感的なことではありません。 – iainn

答えて

8

現在、クラスプロパティの宣言中にオブジェクトをインスタンス化することはできません。その代わりに、オブジェクトコンストラクタで行う必要があります:ドキュメント内

class foo{ 
    public $object; 

    public function __construct() { 
     $this->object = new bar(2); 
    } 

    public function index(){ 
     dd($this->object); 
    } 
} 
+0

それは働いた!どうもありがとうございました! –

関連する問題