解析PHP可变函数的经典用法
程序员文章站
2022-05-25 17:25:44
复制代码 代码如下:
<?php
function map($fun, $list,$params=array()){
$acc=null;
$last=array_push($params, null,$acc)-1;
foreach($list as $params[$last-1]){ //第一次见这种写法感觉很神奇
$params[$last]=call_user_func_array($fun , $params );
}
$acc=array_pop($params);
return $acc;
}
function add($element,$acc){
if ($acc == null);
return $acc=$element+$acc;
}
$result=0;
$result=addto($result,1);
$result=addto($result,2);
$result=addto($result,3);
echo "result = $result\n";
$result=0;
$result=map('addto',array(1,2,3));
echo "result= $result\n";
?>
这样以后累加 类似的计算就方便多了。。。
复制代码 代码如下:
<?php
function map($fun, $list,$params=array()){
$acc=null;
$last=array_push($params, null,$acc)-1;
foreach($list as $params[$last-1]){ //第一次见这种写法感觉很神奇
$params[$last]=call_user_func_array($fun , $params );
}
$acc=array_pop($params);
return $acc;
}
function add($element,$acc){
if ($acc == null);
return $acc=$element+$acc;
}
$result=0;
$result=addto($result,1);
$result=addto($result,2);
$result=addto($result,3);
echo "result = $result\n";
$result=0;
$result=map('addto',array(1,2,3));
echo "result= $result\n";
?>
这样以后累加 类似的计算就方便多了。。。
下一篇: 75道阿里Java面试题,你能答上几道?