2017-12-18 9 views
1

私の形質(または形質が使用されている間は別の方法)でコンストラクタを実行することはできません。出来ますか?形質でコンストラクタを実行

trait test{ 
    public function __construct() 
    { 
     echo 'test'; 
    } 
} 

class myClass{ 
    use test; 
    public function __construct(){ 
     echo 'myClass'; 
    } 
} 
new myClass(); 
+0

ないあなたはクラスのコンストラクタのコードで形質コンストラクタコードを上書きしている場合は、特性はextendsのように継承されませんが、その特性を使用する「中間」クラスを作成し、その中間クラスからmyClassを拡張してからparent :: __ construct() ' - [Demo ](https://3v4l.org/8kVtU) –

答えて

1

test)このようにそれを試してみてください。

trait test{ 
    public function __construct() 
    { 
     echo 'test'; 
    } 
} 

class myClass{ 
    use test { 
     test::__construct as private __tConstruct; 
    } 
    public function __construct(){ 
     $this->__tConstruct(); 
    } 
} 
new myClass(); 
関連する問題