批改状态:合格
老师批语:剩余参数,也叫可变参数, 应该是一个很实用的功能
<?php// 自定义函数function func1(float $a,float $b):float{return $a*$b;}echo func1(3,2);echo '<hr>';// 系统函数$str='woshizhongguoren';var_dump(mb_strlen($str));echo '<br>';var_dump(mb_substr($str,5,8));echo '<hr>';$str='我是中国人,在河南郑州';var_dump(mb_strlen($str));echo '<br>';var_dump(mb_substr($str,3,4));// 可变函数echo '<hr>';$function='func1';echo $function(4,5);echo '<hr>';// 匿名函数:闭包,可访问父作用域(需要通过use导入),普通函数不行$num=2;$f=function ($dis) use($num){return $num*$dis;};echo $f(2).'<br>';echo gettype($f(2)).'<br>';echo @<<< "EOT"匿名函数:闭包,可访问父作用域(需要通过use导入),普通函数不行<br>不正确的:<pre>function sum(float $a) use($num){return $a*$num}</pre>EOT;echo '<hr';// 函数返回值// 函数返回字符串:拼装function str_link():string{$a='woshi';$b='zhongguoren';return $a.'&'.$b;}echo str_link(),'<br>';// 返回数组function get_array():array{return ['status'=>1,'message'=>'成功'];}print_r(get_array());// 返回json对象function get_arr():string{return json_encode(['status'=>1,'message'=>'成功']);}echo get_arr(),'<br>';$arra=get_arr();print_r(json_decode($arra));echo '<br>';print_r(json_decode($arra,true));echo '<hr>';// 返回序列化function get_ar():string{return serialize(['status'=>1,'message'=>'成功']);}echo get_ar();echo '<br>';print_r(unserialize(get_ar()));// 函数参数$ab=23;// 如果在参数前面使用了取地址符,则会改变原始调用参数的值function get_float(float &$a):float{return $a*=2;}echo get_float($ab),'<br>';echo $ab,'<br>';//默认参数必须写在必选参数的后面function get_sum(float $a,float $b=2):float{return $a+$b;}echo get_sum(3),'<br>';echo get_sum(3,6),'<br>';function get_s(...$arr):float{return array_sum($arr);}echo get_s(1,2,3,4,5,10),'<br>';function get_p(...$arr):float{return array_product($arr);}echo get_p(1,2,3,4);
代码演示结果:
1、函数命名:小驼峰法:getSum;蛇形命名法:get_sum;
2、匿名函数:又称闭包,可以通过use访问父级变量;
3、函数返回值:单值返回
json_encode();serialize();4、函数参数
&):如果在参数前面使用了取地址符,则会改变原始调用参数的值...用在函数的形式参数列表中,表示”收集”,将多个离散的参数打包到一个数组中处理;用在函数的调用参数列表中,表示”展开”,还原将一个数组展开成一个个离散的值.
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号