博客列表 >1.总结函数的返回值,参数? 2. 实例演绎你对课上匿名函数以及变量作用域问题的理解?

1.总结函数的返回值,参数? 2. 实例演绎你对课上匿名函数以及变量作用域问题的理解?

ッ小眼睛っ
ッ小眼睛っ原创
2021年08月05日 14:19:56363浏览
  1. <?php
  2. /**
  3. * 函数的返回值只能单个返回可以是字符串、整数、浮点型、数组、对象和布尔类型
  4. * return后面的代码不会被执行
  5. *
  6. * 函数的参数:
  7. * 多个参数可以用,隔开
  8. * 参数为函数的调用者体供了一个接口去改变函数体的执行行为
  9. * 没有参数。函数的执行行为是固定的
  10. * 参数列表是从左往右传值的,形参设置有默认值的时候可以不填写参数,如果传了参数,会覆盖默认值
  11. */
  12. $name = '林俊杰';
  13. function demo($name)
  14. {
  15. //return返回的数据需要echo才能显示
  16. return '我是'.$name;
  17. }
  18. echo demo('周杰伦<br>');
  19. function demo1(int $a=1,int $b=2,int $c=3,int $d=4)
  20. {
  21. return $a+$b+$c+$d;
  22. }
  23. //参数列表是从左往右传值的,形参设置有默认值的时候可以不填写参数,如果传了参数,会覆盖默认值
  24. //参数要么传,要么全都不传
  25. echo demo1();
  26. echo demo1(7,8,9,10);
  27. echo '<hr>';
  28. //function_exists()判断函数名是否存在
  29. if(!function_exists('demo3'))
  30. {
  31. //剩余参数是...生成的 参数个数不确定
  32. //剩余参数在列表中表示收集的作用
  33. function demo3(...$arr)
  34. {
  35. return array_sum($arr);
  36. }
  37. echo demo3(123,456,789,125,666).'<br>';
  38. $arr1 = [147,258,369,777,666,852];
  39. //剩余参数用在函数调用表达式中:展开
  40. echo demo3(...$arr1);
  41. }
  42. //匿名函数在PHP中是闭包函数
  43. $demo4=function($name)
  44. {
  45. return "欢迎{$name}来到php<br>";
  46. };
  47. echo $demo4('胡歌');
  48. /**
  49. * 作用域:
  50. * 全局成员不受作用域的影响
  51. * 函数外变量如果想在函数内使用必须使用 global 变量名 或 $GLOBALS['变量名']
  52. * 闭包函数如果要使用全局变量需使用 use(变量名)
  53. */
  54. $phome='iPhone 12 Pro Max';
  55. $RAM = '12G';
  56. function demo5($phome,$RAM){
  57. global $name;
  58. return $name.'的手机型号'.$phome.'内存是'.$RAM.'<br>';
  59. }
  60. function demo6($phome,$RAM){
  61. global $name;
  62. return $GLOBALS['name'].'的手机型号'.$phome.'内存是'.$RAM.'<br>';
  63. }
  64. echo demo5($phome,$RAM);
  65. echo demo6($phome,$RAM);
  66. function demo7 ($s){
  67. global $name;
  68. return function ($t) use(&$name,$s)
  69. {
  70. if($name == '周杰伦') {
  71. $name = '林俊杰';
  72. return "{$t}最喜欢{$name}唱的{$s}<br>";
  73. }else{
  74. $name = '周杰伦';
  75. return "{$t}最喜欢{$name}唱的{$s}<br>";
  76. }
  77. };
  78. }
  79. echo demo7('告白气球')('灭绝小师太');
  80. echo $name;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议