2017-03-24 58 views
0
trait a 
{ 
    private $url = 123; 

    public function foo() 
    { 
     echo $this->url; 
    } 

} 

trait b 
{ 
    private $url = 456; 

    public function foo() 
    { 
     echo $this->url; 
    } 
} 


class Foo 
{ 
    use a, b { 
     a::$url insteadof $aUrl; 
     b::$url as $bUrl; 
     a::foo insteadof aFoo; 
     b::foo as bFoo; 
    } 

} 

我有2個特點,既特質包含相同的屬性&方法名稱多個性狀的方法調用此屬性

我的一個類需要使用這2個特徵

我嘗試別名不同的名稱。

我的問題是在方法foo裏面,它執行$ this-> url;

這會導致問題嗎?因爲現在哪個特質網址?

+0

當你嘗試過時發生了什麼? –

+0

我在別名屬性上出錯 –

回答

0

也許你可以改變你的OOP架構?使用抽象類或接口,而不是性狀?最好不要使用Trait中的屬性...