[PHP函数]⑥--回调函数

Paste_Image.png

无参回调函数

';
}

function play()
{
    echo 'playing...
'; } 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 "
"; 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 "
"; 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...
'; } call_user_func('study','queen'); echo "
"; 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

你可能感兴趣的:([PHP函数]⑥--回调函数)