php callback函數


//自定義函數
function study($username){
    echo $username. ' is study...<br/>';
}
function play($username){
    echo $username .' is playing...<br/>';
}
//自定義調用
function doWhat($funcName,$param){
    $funcName($param);
}
doWhat('study','king');
doWhat('play','lisi');

//系統調用函數//call_user_func — 把第一個參數作為回調函數調用
//mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
echo '<br/>';
call_user_func('study','liuzhao');
call_user_func('play','王五');
echo 'liuzhao md5加密:'.call_user_func('md5','liuzhao');
echo '<br/>';

//callback 加減
function add($x,$y){
    return $x+$y;
}
function reduce($x,$y){
    return $x-$y;
}
function calc($funcName,$x,$y){
    return $funcName($x,$y);
}
echo '<hr/>';
echo calc('add',1,2);
echo '<br />';
echo calc('reduce',1,2);

//callback 運用 array_map將回調函數作用到給定數組的單元上
echo '<hr />';
$arr=array(1,2,3,4,5);
function test1($var){
    return $var*2;
}
$result=array_map('test1',$arr);
print_r($arr);
echo '<br />';
print_r($result);
//array_walk — 使用用戶自定義函數對數組中的每個元素做回調處理

//bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )

$arr1=array(1,2,3,4,5);
//引用傳參,*=
function test2(&$var){
    $var*=3;
}
echo '<hr/>';
array_walk($arr1,'test2');
print_r($arr1);

//array_filter — 用回調函數過濾數組中的單元
//array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
//過濾奇數
echo '<hr />';
$arr2=array(1,2,3,4,5);

function odd($var){
    if($var%2==0){
        return $var;
    }
}
$res=array_filter($arr2,'odd');
var_dump($res);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM