php调用方式,php 函数调用的几种方式

本文介绍了PHP中函数调用的几种常见方式,包括直接调用、作为回调函数的调用以及使用函数池进行调用,并通过用户注册和修改密码的例子进行详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 最常见的函数调用 --- 1

function userFunction1($param1, $param2){

echo 'UserFunction1: Param1 : ',$param1,' , Param2 : ',$param2,'
';

}

userFunction1('Hello','world');

// 最常见的函数调用 --- 2

$userFunction2 = function($param1, $param2){

echo 'UserFunction2: Param1 : ',$param1,' , Param2 : ',$param2,'
';

};

$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 '

';

print_r($user);

echo '

';

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 '

';

print_r($user);

echo '

';

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值