php7 calluserfuncarray,默认参数,剩余参数,匿名函数,call_user_func_array-2019年7月30日

一.默认参数

默认参数:在函数定义过程时,提前为函数的参数设置好了默认值,在函数调用但未提供实参时,所采用的赋值方式

实例

function sum($a=10,$b=20){

return $a*$b;

}

echo sum()."
";

echo sum(20)."
";

echo sum(20,30)."
";

运行实例 »

点击 "运行实例" 按钮查看在线实例

fd9af7c4a88062febc8175f820088511.png

二.剩余参数

剩余参数:在函数参数设置中以 ...变量名方式设置的形参,剩余参数可代表未被直接赋值的所有实参,且实参之间以数组的形式存储在一起

实例

function sum($a,$b,...$c)

{

return $a+$b+array_sum($c);

}

echo sum(1,2,3,4,5,6,7,8,9);

运行实例 »

点击 "运行实例" 按钮查看在线实例

e9aea0ccc2f6e08429bec532c2bdb830.png

三、函数内访问外部变量

实例

$food="食物";

$eat=function()

{

global $food;

return "我要吃".$food;

};

echo $eat()."


";

$water="可乐";

$drink=function()

{

$GLOBALS['water'];

return "我要喝".$GLOBALS['water'];

};

echo $drink()."


";

const GAME1="q";

define("GAME2","w");

$game=function()

{

return "game1:".GAME1."|||GAME2:".GAME2;

};

echo $game();

运行实例 »

点击 "运行实例" 按钮查看在线实例

b68a93c27e784de1f5ac1beb58609d1a.png

四.匿名函数,调用外部数据

匿名函数:也叫闭包函数 ,它允许临时创建一个没有指定名称的函数。最经常用作回调函数参数的值。

使用use 关键字,调用外部数据

实例

$password="123456";

$demo1=function() use ($password){

return "我的密码是:".$password;

};

echo $demo1();

运行实例 »

点击 "运行实例" 按钮查看在线实例

785ab07293599c36f423c250108e3313.png

五.回调

函数的调用常见的有传统的方式和只用函数回调的方式

常用的两个方法 call_user_func( ) 和call_user_func_array()

与call_user_func()相比call_user_func_array( )更为常用

实例

function add($a,$b){

return $a+$b;

}

//传统方式

echo add(1,2)."


";

//回调方式1 call_user_func("函数名",函数参数)

echo call_user_func('add',5,10)."


";

//回调方式2 call_user_func_array("函数名",参数数组)

echo call_user_func_array("add",[100,200])."


";

//也可以调用系统函数

echo call_user_func_array('print_r', [[1,2,3,4]])."


";

class A

{

public function sum($a, $b) {

return $a + $b;

}

public static function mul($a, $b) {

return $a * $b;

}

}

$a=new A;

echo $a->sum(1,2)."


";

// 还可以将对象/类中的方法以回调的方式来执行

echo call_user_func_array([($a),'sum'],[100,200])."


";

echo call_user_func_array(['A','mul'],[10,30])."


";

运行实例 »

点击 "运行实例" 按钮查看在线实例

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值