博客列表 >07-30 作业:函数默认参数,剩余参数,匿名函数及call_user_func_array()方法...

07-30 作业:函数默认参数,剩余参数,匿名函数及call_user_func_array()方法...

Yx的博客
Yx的博客原创
2019年07月31日 12:16:24691浏览

在PHP中,支持函数的默认方式调用,即为参数指定一个默认值。


1.默认参数实例:

<?php
 //自定义一个函数mun
 function mun($a=1, $b=2, $c=3){
   echo $a + $b;
 }
 mun();               //全部使用默认参数相加
 echo "<hr>";
 mun(8);            //第一个默认参数被覆盖,后面两个参数为默认
 echo "<hr>";
 mun(8,5);          //前两个默认参数被覆盖,后面一个参数为默认
?>

运行实例 »

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

2.剩余函数实例:

<?php
//剩余参数,函数中参数设置中使用 ...变量名 方式设置的形参,称之为剩余参数,剩余参数可代表未被直接设置所有实参,且所有实参之间
//以数组的形式存储在一起,
function add ($a,$b,...$c){
    return $a+$b+array_sum($c);
}

echo add(1,2,3,4,5,6,7,8,9,10)."<br>"; //1到10之和 = 55

运行实例 »

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

 

3.匿名函数实例:

<?php
//匿名函数,即没有定义函数名的函数 即 function(){} 在PHP中也称为闭包函数
//允许临时创建一个没有指定名称的函数,被用作回调函数参数的值

// 匿名函数 不设置函数名 但可以将返回值保存在一个变量中 如 $add
$add =function ($a,$b){
    return $a+$b;
}; // $add = 值  是赋值语句 所以要以分号结尾

echo $add(9,11)."<br>"; //输出20
echo "<hr>";
//匿名函数作为函数的回调参数使用

$tel = "13015600265"; //全局变量
$a = function(){      //变量赋值匿名函数 返回外部数据
    return $tel;      //因为没有声明或使用超全局方法调用 本次调用失败
};

$b = function()use($tel){  //匿名函数括号后 使用use(变量名)调用外部变量,函数体内返回成功
    return $tel;           //调用到内部的变量也拥有修改的权限
};
echo $b();
echo "<hr>";
$c = function()use($tel){  //匿名函数括号后 使用use(变量名)调用外部变量,函数体内返回成功
    $tel = "13005972323";
    return $tel;           //调用到内部的变量也拥有修改的权限
};
echo $c();  //输出 13005972323 函数体内部修改的变量值,对于在外部变量的原值不做产生影响

运行实例 »

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

 

call_user_func_array()使用:

使用方法简单来讲,就是调用一个函数或者一个类中的某个成员函数

. 场景:

a、你要调用的函数名是未知的
b、要调用函数的参数类型及个数也是未知的,而且第二个参数传入的是数组,我不知道这样理解对不对?老师

 <?php
function a($b,$c){   //第一个参数是函数名,第二个参数是参数数组
echo $b;
echo $c;
}
call_user_func_array('a',array("111","222"));
//返回是111,222
?>

运行实例 »

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

 

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议