Paste_Image.png
无参回调函数
<?php
header("content-type:text/html;charset=utf-8");
function study()
{
echo 'studying...<br/>';
}
function play()
{
echo 'playing...<br/>';
}
function doWhat($funcName)
{
echo "我正在";
$funcName();
}
doWhat('study');//我正在studying...
?>
带参数的回调函数
function add($x, $y)
{
return $x + $y;
}
function reduce($x, $y)
{
return $x - $y;
}
function calc($funcName, $i, $j)
{
return $funcName($i, $j);
}
echo calc('add', 3, 5);//8
array_map
不改变原数组的数据
Paste_Image.png
$res = array_map('test', $arr);
$arr = array(1, 4, 5, 6);
function test($var)
{
return $var * 2;
}
$res = array_map('test', $arr);
var_dump($arr);
echo "<hr/>";
var_dump($res);
Paste_Image.png
array_walk
会改变数组本身的数据
Paste_Image.png
$arr=array(1,2,3,4,5,6,7,8);
function test($var){
return $var*3;
}
var_dump(array_walk($arr,'test'));//boolean true
echo "<br/>";
var_dump($arr);
Paste_Image.png
array_filter
过滤元素
Paste_Image.png
$arr = array(1, 2, 3, 4, 5, 6, 7, 8);
function odd($var)
{
if ($var % 2 == 1) {
return $var;
}
}
$res = array_filter($arr, 'odd');
var_dump($res);
Paste_Image.png
call_user_func
Paste_Image.png
function study($name)
{
echo $name.' is studying...<br/>';
}
call_user_func('study','queen');
echo "<hr/>";
echo call_user_func('md5','king');
Paste_Image.png
call_user_func_array
function add($x, $y)
{
return $x + $y;
}
function reduce($x, $y)
{
return $x - $y;
}
echo call_user_func_array('add', array(1, 2));//3