多个traits方法调用此属性

时间:2017-03-24 14:12:16

标签: php oop

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;
   }

}

我有两个特征,两个特征都包含相同的属性和方法名称

我的一个班级要求使用这两个特征

我尝试将别名改为别名。

我的问题是方法foo,它执行$ this-> url;

这会引起问题吗?因为现在哪个特质网址?

1 个答案:

答案 0 :(得分:0)

也许你可以改变你的OOP架构?为此使用抽象类或接口而不是trait?最好不要在Trait中使用属性...