Php 为什么可调用函数在此实例中输出闭包对象?
我理解它的方式是,Php 为什么可调用函数在此实例中输出闭包对象?,php,function,oop,closures,callable,Php,Function,Oop,Closures,Callable,我理解它的方式是,callable只是一个类型提示,我们通过函数/方法参数传递它,以强制在它应该是类型callable之后传递的任何内容(换言之,是函数)参见此示例: function foo(\Callable $fn){ var_dump($fn); } 所以我假设$fn应该是一个函数,所以我将它作为一个函数传递 $fn = function(){ }; foo($fn); 我得到了输出 object(Closure)#1 (0) { } 这就是我不明白的,对象和闭包从
callable
只是一个类型提示,我们通过函数/方法参数传递它,以强制在它应该是类型callable
之后传递的任何内容(换言之,是函数)参见此示例:
function foo(\Callable $fn){
var_dump($fn);
}
所以我假设$fn
应该是一个函数,所以我将它作为一个函数传递
$fn = function(){
};
foo($fn);
我得到了输出
object(Closure)#1 (0) {
}
这就是我不明白的,对象和闭包从哪里来 匿名函数在PHP中作为闭包类型的对象进行维护,这就是它的工作方式。除此之外,我不确定问题是什么。如果您还没有阅读过,请阅读。我想我是在试图理解
可调用
与closure和anonymouse函数之间的关系,它们非常清楚地说明了什么是可调用的,什么是不可调用的。特别请参见示例2,名为“使用闭包的回调示例”。