<?php
// 最常见的函数调用 --- 1
function userFunction1($param1, $param2){
echo 'UserFunction1: Param1 : ',$param1,' , Param2 : ',$param2,'<br/>';
}
userFunction1('Hello','world');
// 最常见的函数调用 --- 2
$userFunction2 = function($param1, $param2){
echo 'UserFunction2: Param1 : ',$param1,' , Param2 : ',$param2,'<br/>';
};
$userFunction2('Hello', 'PHP');
// 作为回调函数的函数调用 --- 1
function funcWithCallback1($callback, $param1, $param2){
echo 'funcWithCallback1 : ';
if(is_callable($callback)) $callback($param1, $param2);
}
funcWithCallback1($userFunction2,'Hello','world');
// 作为回调函数的函数调用 --- 2 call_user_func
function funcWithCallback2($callback, $param1, $param2){
echo 'funcWithCallback2 : ';
if(is_callable($callback)) call_user_func($callback, $param1, $param2);
}
funcWithCallback2($userFunction2,'Hello','world');
// 一个函数调用示例: 以 用户注册,修改密码为例
$function_pool = array(
'regist' => array(
'validateUsername' => function($username){
return (strtolower($username) !== 'admin') ? true : false;
},
'addUser' => function($username, $password){
$user[$username] = $password;
echo 'Add user Ok';
return $user;
}
),
'updatePass' => array(
'validatePassword' => function($username, $password, $user){
return (is_array($user) && array_key_exists($username, $user) && $user[$username] == $password);
},
'setPassword' => function($username, $password, $user){
$user[$username] = $password;
return $user;
}
)
);
function regist($function_pool, $username, $password){
if(isset($function_pool) && isset($function_pool['regist'])){
if(isset($function_pool['regist']['validateUsername']) && $function_pool['regist']['validateUsername']($username)){
return $function_pool['regist']['addUser']($username, $password);
}else{
return 'User exists or Uniligel ';
}
}
}
$user = regist($function_pool, 'Guojunzhou', 'sanyue');
echo '<pre>';
print_r($user);
echo '</pre>';
function updatePass($function_pool, $username, $password, $newPass, $user){
if(isset($function_pool) && isset($function_pool['updatePass'])){
if(isset($function_pool['updatePass']['validatePassword']) && $function_pool['updatePass']['validatePassword']($username, $password, $user)){
return $function_pool['updatePass']['setPassword']($username, $newPass, $user);
}
}
}
$user = updatePass($function_pool, 'Guojunzhou', 'sanyue', '123456', $user);
echo '<pre>';
print_r($user);
echo '</pre>';
?>
php 函数调用的几种方式
最新推荐文章于 2024-08-03 14:13:13 发布