PHPDoc 中可选的可为空参数

Ale*_*lex 5 php phpdoc phpdocumentor2

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

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

 }
Run Code Online (Sandbox Code Playgroud)

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

通常我使用“Type2|null”表示法:

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

 }
Run Code Online (Sandbox Code Playgroud)

实际上这是我更喜欢的方式,因为它明确描述了所有可能的类型。但是我从文档中听到了不明显的抱怨,无论参数是否可选。

我知道,像接缝一样,非官方约定“(可选)”

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

 }
Run Code Online (Sandbox Code Playgroud)

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

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

 * @param Type2|null $bar (optional)
Run Code Online (Sandbox Code Playgroud)

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

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

ash*_*azg 6

@param Type2|null $bar

是正确的方法,从 phpDocumentor 的角度来看...请参阅此处getOption()显示的方法的最后三个参数。