trait A {
public function hello(): string { return 'A'; }
}
trait B {
public function hello(): string { return 'B'; }
}
class MyClass {
use A, B {
A::hello insteadof B; // использовать метод из A
B::hello as helloB; // метод B доступен как helloB
}
}
$obj = new MyClass();
echo $obj->hello(); // "A"
echo $obj->helloB(); // "B"Без разрешения конфликта PHP выдаст фатальную ошибку. as также позволяет менять видимость: A::hello as private;