2017-06-01 88 views
0

我的問題很簡單。我有一個特質和孩子的課。如何將特徵方法分配給子類對象?

trait mixVar { 

public function go(){ 
return []; 
} 

} 


class example extends foo { 

use mixVar; 


public $var=$this->go(); //does not work 

} 

如何使這個在PHP?

+1

類'example'創建函數或添加到'__constructor'。因爲類屬性__的值必須在編譯時間 –

回答

1

您不能使用方法調用爲屬性分配默認值。你必須在構造函數中完成它。

class example extends foo 
{ 
    use mixVar; 

    public $var; 

    public function __construct() 
    { 
     $this->var = $this->go(); 
    } 
} 
+0

處進行定義___我感謝__construct,它的工作原理 – JoBlox

0

另一種解決方案是定義像性狀方法:

trait mixVar { 

    public function go(){ 
     $this->var = []; // your value here 
    } 

} 
+0

感謝u_mulder – JoBlox