使用以下函数:
function is_closure($t) { return ( !is_string($t) && is_callable($t)); }
除了匿名闭包函数之外,这还能返回 true 吗?如果是这样,确定变量是否为闭包的正确方法是什么?
非常感谢
最佳答案
检查回调是否为实际闭包的最确定方法是:
function is_closure($t) {
return $t instanceof \Closure;
}
在 PHP 中,所有匿名函数都表示为 Closure
类型的对象。 (回到上面的评论,恰好实现了 __invoke()
方法。)
关于php - 确定变量是否是 PHP 中的有效闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101469/