博客列表 >PHP基础知识:函数

PHP基础知识:函数

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2020年04月22日 23:03:03768浏览

函数相关代码练习

  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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议