array_reduce的管道问题
function f1($f){echo __FUNCTION__."()\n"; $f();}
function f2($f){echo __FUNCTION__."()\n"; $f();}
function f3($f){echo __FUNCTION__."()\n"; $f();}
function go($s, $f){
return function() use($s, $f){
call_user_func($f, $s);
};
}
$goo = array_reduce(['f1', 'f2', 'f3'], 'go', function(){});
$goo();
array_reduce()使用函数go()组装的管道可能类似于下面这样
$gooo = function(){
call_user_func('f3',
function(){
call_user_func('f2',
function(){
call_user_func('f1',
function(){}
);
}
);
}
);
}
$gooo();
tinker测试图如下
本作品采用《CC 协议》,转载必须注明作者和本文链接