PHP特性:如何解决属性名称冲突?

当一个类使用两个具有同名属性的特性时,如何解决属性名称冲突?

例:

<?php

trait Video {
    public $name = 'v';
}


trait Audio {

    public $name = 'a';
}


class Media {
    use Audio, Video;
}

$media = new Media();
$media->name;

我试过代替(Video :: name代替Audio)和(Video :: name as name2)没有成功.

提前致谢 !

解决方法:

您不能,仅用于方法.
但是,只有在值相同的情况下,它们才可以使用相同的属性名称:

trait Video {
  public $name;
  function getName(){
    return 'Video';
  }
}
trait Audio {
  public $name;
  function getName(){
    return 'Audio';
  }
}
class Media {
  use Audio, Video {
    Video::getName insteadof Audio;
  }

  function __construct(){
    $this->name = $this->getName(); // 'Video'
  }
}
上一篇:【数字IC验证快速入门】28、SystemVerilog项目实践之AHB-SRAMC(8)(AHB-SRAMC RTL Code)


下一篇:PHP:类的特征和其他特征冲突