【发布时间】:2018-11-17 09:11:40
【问题描述】:
我正在尝试从两个单独的特征中运行两个函数,这些特征将应用于一个类中,但依次将一个添加到另一个上。一个简单的例子如下所示
trait UserLevel{
public function get(){
echo 'World';
}
}
trait SpecialUser{
use UserLevel {
UserLevel::get as userGet;
}
public function get(){
echo 'Hello ';
$this->userGet();
}
}
Class GetUser{
use UserLevel, SpecialUser;
}
$user = new GetUser;
$user->get();
我在这个问题上的所有谷歌搜索都只是展示了如何使用insteadof来覆盖另一个。
编辑:
此问题与引用的问题不重复。在运行具有规定更改的代码时,我得到了
致命错误:尚未应用特征方法get,因为有 在第 20 行的 /in/hg9ok 中与 GetUser 上的其他 trait 方法发生冲突
进程以代码 255 退出。
谢谢
【问题讨论】:
-
不完全确定是否重复,但它可能会为您指明如何访问这两种方法的方向。
-
您应该从阅读手册开始:php.net/manual/en/language.oop5.traits.php。特征名称后没有
()。由于这些括号,您发布的代码does not compile。
标签: php multiple-inheritance traits