[英]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.