Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多个traits方法调用此属性_Php_Oop - Fatal编程技术网

Php 多个traits方法调用此属性

Php 多个traits方法调用此属性,php,oop,Php,Oop,我有两个特征,两个特征包含相同的属性和方法名 我的一个班级要求使用这两个特征 我试着把别名改成不同的名字 我的问题在方法foo中,它执行$this->url 这会引起问题吗?因为现在是哪个特征url?也许你可以改变你的OOP架构?为此使用抽象类或接口而不是trait?最好不要在Trait中使用属性…尝试时发生了什么?alias属性出错 trait a { private $url = 123; public function foo() { echo $this

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

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

我试着把别名改成不同的名字

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


这会引起问题吗?因为现在是哪个特征url?

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

尝试时发生了什么?alias属性出错
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;
   }

}