在PHP中将函数作为另一个函数的参数传递
我想将函数(而不是结果)作为另一个函数的参数传递。假设我有在PHP中将函数作为另一个函数的参数传递,php,function,oop,Php,Function,Oop,我想将函数(而不是结果)作为另一个函数的参数传递。假设我有 function double_fn($fn) 我想运行给定的函数($fn)两次。PHP中有这样的机制吗?我知道你在python中函数是一种变量,但PHP类似吗 @编辑 有没有类似的使用方法 function double_fn(parrot::sing()) 由于5.3(注意)您可以非常自然地使用闭包: function double_fn(callable $fn) { $fn(); $fn(); } doub
function double_fn($fn)
我想运行给定的函数($fn)两次。PHP中有这样的机制吗?我知道你在python中函数是一种变量,但PHP类似吗
@编辑
有没有类似的使用方法
function double_fn(parrot::sing())
由于5.3(注意)您可以非常自然地使用闭包:
function double_fn(callable $fn)
{
$fn();
$fn();
}
double_fn(function() {
echo "hi";
});
(注意)仅从5.4开始键入提示
类型可以是以下几种:
function double_fn(parrot::sing())
函数double\u fn(parrot::sing())
这样做将把parrot::sing()
的结果传递到函数中;要向静态方法传递“引用”,您需要使用以下任一方法:
double_fn('parrot::sing');
double_fn(['parrot', 'sing']);
您可以使用PHP 5.3.0中介绍的:
function double_fn($fn) {
$fn();
}
double_fn(function(){
// fonction body
});
或:
是。。。有点不同。将函数名作为字符串传递
function foo()
{
echo "foobar\n";
}
function double_fn($fn)
{
$fn();
$fn();
}
double_fn('foo');
你从5.3开始就躲在岩石下了吗?:)@杰克:为什么我要定义一个只调用另一个函数的匿名函数?谁说匿名函数调用另一个函数?