[英]PHPDoc for a parameter that must be a specific class implementing an interface
如何为必须是特定类(或子类)并且必须实现接口的参数编写PHPDoc?
class Animal{
public function name();
}
interface IsCute{
public function cuddles();
}
/**
* @param Animal<IsCute> $animal must be a subclass of Animal and also implements IsCute
*/
function cuddlyAnimal(Animal $animal){
$animal->cuddles();
}
在上面的示例中,我有一个AnimalClass,其中包含许多潜在的子类,如Dog,Cat,Salmon,Bluejay。
我的课程结构如下:
Animal
Mammal
Dog implements IsCute
Cat implements IsCute
Fish
Salmon
Bird
Bluejay implements IsCute
Dog
, Cat
和Bluejay
实现IsCute
, Salmon
则没有。 我想要一个cuddlyAnimal
的PHPDoc,它需要Animal
类和IsCute
接口。
尝试这个:
/**
* @param IsCute|Animal $animal must be a subclass of Animal and also implements IsCute
*/
function cuddlyAnimal(IsCute $animal){
$animal->cuddles();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.