我有一个特质。为了创意起见,我们称这个 trait Trait:
trait Trait{
static function treat($instance){
// treat that trait instance with care
}
}
现在,我还有一个使用这个特性的类,用户。当尝试使用 User 实例调用 Treat 时,一切正常。但我想键入提示,只有使用 Trait 的类的实例才应该作为参数给出,如下所示:
static function treat(Trait $instance){...}
遗憾的是,这导致了一个致命错误,表明该函数需要一个 Trait 实例,但给出了一个 User 实例。这种类型的类型提示非常适合继承和实现,但是我如何对特征进行类型提示呢?