我通常使用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;
};
答案 0 :(得分:2)
您不应该记录匿名函数,而应该记录变量。它看起来像:
/** @var \Closure $length */
$length = function() {
return 20;
};
标记@var
也适用于常规变量。但是,通常不需要这样做:因为PHP将使用PHPDoc,并且大多数IDE都能够获得您的变量是一个关闭权限,因为您有自己的任务。
如果你想在某个地方传递那个变量 - 你可以明确地在接受方法/函数中暗示callable
或\Closure
,即使没有PHPDoc(但你也可以使用PHPDoc作为孔)
有关@var
标记的详细信息,请参阅documentation。还要注意,闭包类型或回调与该回调返回的值类型无关 - 显然你是在宣告你的回调,而不是调用它(这就是说:我假设“长度“不是回调的好名称,因为它会引起混淆。请使用一些与操作相关的名称,例如”lengthGetter“等等)