可调用php,对函数或值的引用

可调用php,对函数或值的引用,php,function,Php,Function,我对php中的可调用类型有点困惑,我不确定分配给回调函数的变量是否得到函数返回的值,或者它是否得到函数的引用 function ($x){ return x; } function func1(callable $func){ $var = $func; } 这是可能的 $var($a) 答案是两者都不是。当您指定一个可调用类型时,您说您将调用这个变量。它可以是字符串、数组或闭包的形式。不管这个变量的值是什么,您都在告诉PHP您打算执行它 // Type 1: Simple c

我对php中的可调用类型有点困惑,我不确定分配给回调函数的变量是否得到函数返回的值,或者它是否得到函数的引用

function ($x){
   return x;
}

function func1(callable $func){
   $var = $func;
}
这是可能的

$var($a)

答案是两者都不是。当您指定一个可调用类型时,您说您将调用这个变量。它可以是字符串、数组或闭包的形式。不管这个变量的值是什么,您都在告诉PHP您打算执行它

// Type 1: Simple callback
func1('my_callback_function');

// Type 2: closure
func1(fn()=>'returnvalue');

// Type 3: Object method call
$obj = new MyClass();
func1([$obj, 'myCallbackMethod']);

有关更多信息,请参见

获取函数,您必须使用
()
调用函数并返回值。它与任何其他值一样。将其分配给变量只会复制引用。