当一个类使用两个具有同名属性的特性时,如何解决属性名称冲突?
例:
<?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'
}
}