call_user_fun_array 是在call_user_fun的基础上升级, 如果有多个参数,就列在数组中,传一个数组就可以了!
call_user_func 使用方法 ,调取某函数,并传参
在函数中调用,参数定义的函数!!!
call_user_func
call_user_func_array
function odd($var){
if($var%2==0){
return $var;
}
}
$res = array_filter($array3,'odd');
print_r($res);
$array2=array(1,2,3,4,5,6);
function test2(&$var){
$var=$var*=3;
return $var;
}
$res2 = array_walk($array2,'test2');
echo '<hr/>';
var_dump(array_walk($array2,'test2'));
echo '<hr/>';
echo $res2;
echo '<hr/>';
print_r($array2);
echo '<hr/>';
<?php
function study(){
echo "studying ...";
}
function plat(){
echo "playing ...";
}
function sing(){
echo "singing ...";
}
function doWhat($funcName){
echo $funcName();
}
doWhat('study');
$array=array(1,2,3,4);
function test($var){
return $var*3;
}
$res = array_map('test',$array);
echo '<hr/>';
print_r($array);
echo '<hr/>';
print_r($res);
dowhat() //回调函数
回调函数的使用
常用的几个数组函数(回调函数)array_map、array_walk、array_push
被当做回调函数的函数如果有参数,那么在调用函数的时候也要设置一个参数;图片可见
回调函数就是在调用函数的时候将另外一个函数的名称作为参数传递进去,并在函数体内执行;看下面图片的截图就知道了
回掉函数的使用方法:
array_filter()过滤数组中的元素:
array_walk()的使用方法:
<?php $arr = array(1,2,3,4,5,6,7,8); function test1(&$var){//引用符号,指向存储地址,会改变原元素的值 $var *=3; return $var; } $res = array_walk($arr,'test1');//将数组中的元素逐个取出作为实参放进函数中运行 var_dump($res);//布尔类型,成功则返回true print_r($arr);
array_map(funcName,array);用法
<?php //对数组中的每个元素做函数处理 $arr = array(1,2,3,4,5,6); function cheng($hah){ return $hah*2; } var_dump(array_map('cheng',$arr));
<?php function add($x,$y){ return $x+$y; } function reduce($x,$y){ return $x-$y; } function calc($funcName,$x,$y){ return $funcName($x,$y); } echo calc('add',5,5);
利用可变函数,形成回调函数: <?php function eat(){ echo "吃饭!"; } function play(){ echo "玩耍!"; } function drink(){ echo "喝水!"; } function doWhat($funcName){ echo "我正在:"; $funcName(); } doWhat('drink');//括号里面是字符串