博客列表 >php函数类型、参数、返回值

php函数类型、参数、返回值

小程_武汉_214945
小程_武汉_214945原创
2020年04月21日 11:06:531009浏览

函数

1.函数的表示方式

  1. function 函数名称(类型: 参数列表): 返回值类型
  2. {
  3. // 函数体
  4. return 返回值;
  5. }

2. 函数的类型

序号 类型 语法 描述
1 自定义函数 function getName(){...} 用户根据业务需求创建
2 系统函数 substr(), count()... 也叫预定义函数,不必声明直接调用
3 可变函数 $funcName(); 函数名使用变量表示
4 匿名函数 $f = function (){...} 也叫”闭包”或”函数表达式”,常用做回调处理

代码示例

  1. <?php
  2. //自定义函数
  3. //BMI计算器
  4. function bmi($weight,$height):float
  5. {
  6. return $weight/($height**2);
  7. }
  8. //单位为kg/m
  9. echo '您的身体健康指数为'.bmi(60,1.75).'<br>';
  10. //系统函数
  11. $str='今天晚上讲的是php第四章';
  12. echo mb_substr($str,0,6).'<br>';//取出str字符串前6个字符,第一位从0开始
  13. $arr=['php','html','js','css'];
  14. echo '<pre>'.var_export(array_slice($arr,1,3),true).'<br>';//从数组第2位开始取3位
  15. //可变函数
  16. $a='bmi';
  17. echo $a(70,1.6).'<br>';//用可变函数调用BMI计算器
  18. //匿名函数
  19. //BMI计算器加上身高体重单位转换,假设转换单位为:斤=》公斤 cm=》m
  20. $arr1=[2,100];
  21. $result=function ($weight,$height)use($arr1){
  22. return ($weight/$arr1[0])/(($height/$arr1[1])**2);
  23. };
  24. echo $result(120,175),'<br>';
  25. //改写为父作用域为函数
  26. $bmi_pro=function (array $arr){
  27. return function ($weight,$height)use($arr){
  28. return ($weight/$arr[0])/(($height/$arr[1])**2);
  29. };
  30. }
  31. echo $bmi_Pro([2,100])(120,175);

3. 返回值

  • 函数必须要有返回值
  • 函数必须是遵守单值返回原则
序号 场景 描述
1 return 可以返回任何类型的值,包括函数类型
2 return 遇到}也会返回, 默认返回null
  • 如果需要返回多个值,可以通过以下手段
序号 返回值类型 描述
1 string 字符串拼接
2 array 数组
3 json JSON 字符串
4 serialize 序列化字符串

json 和序列化,使用时需要进行解码操作

代码示例

  1. <?php
  2. //拼接字符串
  3. function body():string{
  4. $height=175;
  5. $weight=60;
  6. return '身高为'.$height.'cm,体重为'.$weight.'g<br>';
  7. };
  8. echo body();
  9. //转化为数组
  10. function body_1() : array{
  11. $arr=[
  12. 'height'=>175,
  13. 'weight'=>60];
  14. return $arr;
  15. };
  16. echo '身高为'.body_1()['height'].'cm,体重为'.body_1()['weight'].'g<br>';
  17. //json
  18. function body_2():string{
  19. return json_encode(['height'=>175,'weight'=>60]);
  20. }
  21. echo var_export(json_decode(body_2()),true).'<br>';
  22. //序列化
  23. function body_3():string{
  24. return serialize(['height'=>175,'weight'=>60]);
  25. }
  26. echo var_export(unserialize(body_3()),true);

4. 参数

  • 调用者可以通过参数将数据传递到函数中
  • 参数是以逗号分隔的表达式列表
  • 参数按照从左到右的顺序求值

参数类型

序号 类型 描述
1 值参数 默认传参方式
2 引用参数 改变原始调用参数值
3 默认参数 调用时允许省略的参数
4 剩余参数 调用参数数量不确定

代码示例

  1. <?php
  2. //参数传递
  3. function add($number){
  4. return ++$number;
  5. }
  6. $number=1;
  7. echo add($number).'<br>';
  8. echo add($number).'<br>';
  9. //引用传递
  10. function add_1(&$number){
  11. return ++$number;
  12. }
  13. $number=1;
  14. echo add_1($number).'<br>';
  15. echo add_1($number).'<br>';//引用传递直接调用变量的地址
  16. //默认参数
  17. function name($name='张三'){
  18. return $name;
  19. }
  20. echo name().'<br>';
  21. echo name('李四').'<br>';
  22. //剩余参数
  23. function add_2()
  24. {
  25. $quantity=func_num_args();
  26. $total = 0;
  27. foreach (func_get_args() as $value) {
  28. $total +=$value;
  29. }
  30. return '输入参数'.$quantity.'个,和为'.$total;
  31. }
  32. echo (add_2(1,2,3,4,5)).'<br>';
  33. // 使用剩余参数简化
  34. function add_3(...$args){
  35. $add=0;
  36. $total=count($args);
  37. foreach($args as $result){
  38. $add+=$result;
  39. }
  40. return '输入参数'.$total.'个,和为'.$add;
  41. }
  42. echo add_3(1,2,3,4,5).'<br>';
  43. function add_4(...$arr){
  44. $add=array_sum($arr);
  45. $total=count($arr);
  46. return '输入参数'.$total.'个,和为'.$add;
  47. }
  48. echo add_4(...[1,2,3,4,5]);
  • 总结:今天课程中大部分内容比较容易掌握,剩余参数简化方法和匿名函数的use方法接触的较少,还需要多加练习。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议