'; return $opt_name($m,$n); } function add($m,$n)//回调函数 { return $m+$n; } function subtraction($m,$n) { return $m-$n; } $ret=math('add',1,2); echo $ret.'
'; $ret=math('subtraction',6,4); echo $ret.'
'; /* * add是回调函数,add作为参数传入math()中, * 这样就可以把add(),和subtraction()公有的部分一起放入math()中,例如 echo "this is a math opt '$opt_name'".'
'; * 如果math作为库函数,我们是不能修改的。 * 如果不适用回调函数,那么代码将会这样 function add($m,$n)//回调函数 { echo "this is a math opt 'add'".'
'; return $m+$n; } function subtraction($m,$n) { echo "this is a math opt 'subtraction'".'
'; return $m-$n; } $ret=add(1,2); echo $ret.'
'; $ret=subtraction(6,4); echo $ret.'
'; */ //call_user_func() function func_a($funcName,$m,$n) { return call_user_func($funcName, $m, $n); } $ret=func_a('add',10,5); echo $ret.'
'; //call_user_func_array() function func_b($funcName,$m,$n) { return call_user_func_array($funcName, array($m,$n)); //以数组的形式接收回调函数的参数 } $ret=func_b('add',2,100); echo $ret.'
'; ?>