如何使用phpDocumentor记录匿名函数?

时间:2015-12-22 13:22:26

标签: php phpdoc

我通常使用phpDocumentor风格的docblock记录我的PHP函数定义:

/**
 * This is a summary of this function.
 *
 * @since 1.0.0
 *
 * @return int
 */
function my_return_something() {
    return 20;
}

我的问题是,我应该如何记录匿名函数?例如:

$length = function() {
    return 20;
};

1 个答案:

答案 0 :(得分:2)

您不应该记录匿名函数,而应该记录变量。它看起来像:

/** @var \Closure $length */
$length = function() {
    return 20;
};

标记@var也适用于常规变量。但是,通常不需要这样做:因为PHP将使用PHPDoc,并且大多数IDE都能够获得您的变量是一个关闭权限,因为您有自己的任务。

如果你想在某个地方传递那个变量 - 你可以明确地在接受方法/函数中暗示callable\Closure,即使没有PHPDoc(但你也可以使用PHPDoc作为孔)

有关@var标记的详细信息,请参阅documentation。还要注意,闭包类型或回调与该回调返回的值类型无关 - 显然你是在宣告你的回调,而不是调用它(这就是说:我假设“长度“不是回调的好名称,因为它会引起混淆。请使用一些与操作相关的名称,例如”lengthGetter“等等)