PHPDoc中可选的可为空参数

时间:2018-03-02 16:32:20

标签: php phpdoc phpdocumentor2

想象一下,我们有一个带有可选nullable参数(PHP 7.0)的方法,如下例所示:

/**
 * @param Type1 $foo 
 * @param Type2 $bar
 */
 function myFunction(Type1 $foo, Type2 $bar = null)
 {

 }

不幸的是,从PHPDoc文档中不清楚,将第二个参数标记为可选和可空的正确方法是什么。

通常我使用" Type2 | null"符号:

/**
 * @param Type1 $foo 
 * @param Type2|null $bar
 */
 function myFunction(Type1 $foo, Type2 $bar = null)
 {

 }

实际上这是我的首选方式,因为它明确地描述了所有可能的类型。但是,如果参数是可选的,我听到了来自doc的投诉并不明显。

我知道,像非正式约定的接缝"(可选)"

/**
 * @param Type1 $foo 
 * @param Type2 $bar (optional)
 */
 function myFunction(Type1 $foo, Type2 $bar = null)
 {

 }

我不喜欢这种方法,因为从技术上讲,你可以明确地提供NULL作为第二个参数。并且从phpdoc中不清楚。

一般来说,我甚至可以一起使用它们:

 * @param Type2|null $bar (optional)

但它看起来并不好看,恕我直言。

您能否向我提供一些反馈,或者更好的是,提供一些指向相应编码标准/风格指南的链接?

1 个答案:

答案 0 :(得分:2)

@param Type2|null $bar

从phpDocumentor的角度来看,

是正确的方法...查看getOption()方法的最后三个参数,如here所示。