博主信息
博文 145
粉丝 7
评论 7
访问量 202234
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP基础知识:函数
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
原创
933人浏览过

函数相关代码练习

  1. <?php
  2. // 自定义函数
  3. function func1(float $a,float $b):float
  4. {
  5. return $a*$b;
  6. }
  7. echo func1(3,2);
  8. echo '<hr>';
  9. // 系统函数
  10. $str='woshizhongguoren';
  11. var_dump(mb_strlen($str));
  12. echo '<br>';
  13. var_dump(mb_substr($str,5,8));
  14. echo '<hr>';
  15. $str='我是中国人,在河南郑州';
  16. var_dump(mb_strlen($str));
  17. echo '<br>';
  18. var_dump(mb_substr($str,3,4));
  19. // 可变函数
  20. echo '<hr>';
  21. $function='func1';
  22. echo $function(4,5);
  23. echo '<hr>';
  24. // 匿名函数:闭包,可访问父作用域(需要通过use导入),普通函数不行
  25. $num=2;
  26. $f=function ($dis) use($num){
  27. return $num*$dis;
  28. };
  29. echo $f(2).'<br>';
  30. echo gettype($f(2)).'<br>';
  31. echo @<<< "EOT"
  32. 匿名函数:闭包,可访问父作用域(需要通过use导入),普通函数不行<br>
  33. 不正确的:
  34. <pre>
  35. function sum(float $a) use($num){
  36. return $a*$num
  37. }</pre>
  38. EOT;
  39. echo '<hr';
  40. // 函数返回值
  41. // 函数返回字符串:拼装
  42. function str_link():string
  43. {
  44. $a='woshi';
  45. $b='zhongguoren';
  46. return $a.'&'.$b;
  47. }
  48. echo str_link(),'<br>';
  49. // 返回数组
  50. function get_array():array
  51. {
  52. return ['status'=>1,'message'=>'成功'];
  53. }
  54. print_r(get_array());
  55. // 返回json对象
  56. function get_arr():string
  57. {
  58. return json_encode(['status'=>1,'message'=>'成功']);
  59. }
  60. echo get_arr(),'<br>';
  61. $arra=get_arr();
  62. print_r(json_decode($arra));
  63. echo '<br>';
  64. print_r(json_decode($arra,true));
  65. echo '<hr>';
  66. // 返回序列化
  67. function get_ar():string
  68. {
  69. return serialize(['status'=>1,'message'=>'成功']);
  70. }
  71. echo get_ar();
  72. echo '<br>';
  73. print_r(unserialize(get_ar()));
  74. // 函数参数
  75. $ab=23;
  76. // 如果在参数前面使用了取地址符,则会改变原始调用参数的值
  77. function get_float(float &$a):float
  78. {
  79. return $a*=2;
  80. }
  81. echo get_float($ab),'<br>';
  82. echo $ab,'<br>';
  83. //默认参数必须写在必选参数的后面
  84. function get_sum(float $a,float $b=2):float
  85. {
  86. return $a+$b;
  87. }
  88. echo get_sum(3),'<br>';
  89. echo get_sum(3,6),'<br>';
  90. function get_s(...$arr):float
  91. {
  92. return array_sum($arr);
  93. }
  94. echo get_s(1,2,3,4,5,10),'<br>';
  95. function get_p(...$arr):float
  96. {
  97. return array_product($arr);
  98. }
  99. echo get_p(1,2,3,4);

代码演示结果:

知识点总结:

1、函数命名:小驼峰法:getSum;蛇形命名法:get_sum;
2、匿名函数:又称闭包,可以通过use访问父级变量;
3、函数返回值:单值返回

  • 字符串拼装
  • 数组
  • JSON字符串:json_encode();
  • 序列化: 字符串serialize();

4、函数参数

  • 值参数:在函数中改变了调用参数的值,但原始调用参数并没有发生变化
  • 引用参数(只能形参使用,实参不能使用&):如果在参数前面使用了取地址符,则会改变原始调用参数的值
  • 默认参数:默认参数必须写在必选参数的后面
  • 剩余参数:...用在函数的形式参数列表中,表示”收集”,将多个离散的参数打包到一个数组中处理;用在函数的调用参数列表中,表示”展开”,还原将一个数组展开成一个个离散的值.
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:剩余参数,也叫可变参数, 应该是一个很实用的功能
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学