php函数调用_php如何调用函数?

a77a8979bc7d07e80b9a7af61787fbf0.png

PHP函数调用与Java/C/C++是一样的额,通过函数名(参数列表)就可以了。

7d2aaa437f5ee5137e5457433b69a2fa.png

图中,有两处函数调用,一开始的session_start()是调用的PHP函数,validate_user($username, $password)是用户自定义函数,同样的方式调用。

PHP函数调用的多种方式<?php

// 最常见的函数调用 --- 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 '

';

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值