想象一下,我们有一个可选的可空参数方法(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)
{
}
实际上这是我首选的方法,因为它明确描述了所有可能的类型。但我听到有人抱怨在文档中无法明确判断参数是否可选。
我知道有一个非官方惯例是加上“(optional)”来表示可选参数。
/**
* @param Type1 $foo
* @param Type2 $bar (optional)
*/
function myFunction(Type1 $foo, Type2 $bar = null)
{
}
我不喜欢这种方法,因为从技术上讲,你可以明确地提供NULL作为第二个参数。而且从phpdoc中也无法清楚地看出。
一般来说,我甚至可以同时使用它们:
* @param Type2|null $bar (optional)
但是在我看来,它并不好看。
你可以给我一些反馈意见,或者更好的是,给我一些相应的编码规范/样式指南的链接吗?