繁体   English   中英

PHPDoc的参数必须是实现接口的特定类

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

DogCatBluejay实现IsCuteSalmon则没有。 我想要一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM