博客列表 >函数知识点归纳

函数知识点归纳

樊天龙的博客
樊天龙的博客原创
2020年05月10日 06:17:48793浏览

函数知识点归纳

1.函数的声明和调用

  1. <?php
  2. //函数的声明
  3. //形式参数可以在前面限定数据类型,返回值在圆括号后面":返回数据类型"
  4. //function 函数名(形式参数列表)
  5. //{
  6. // //函数体
  7. //}
  8. //函数的调用
  9. //函数名(实际参数列表);
  10. //获取两个字符串拼接后的字符串
  11. function show(string $str1, string $str2): string
  12. {
  13. return $str1 . '&nbsp;' . $str2;
  14. }
  15. echo show('hello', 'world');

2.函数的分类

序号 名称 描述
1 自定义函数 程序员自己定义的函数
2 系统函数 PHP内置的函数
3 可变函数 变量名当做函数名
4 匿名函数 函数名保存到变量中
  1. <?php
  2. //函数的分类
  3. //1.自定义函数
  4. //之前的两个字符串拼接的例子就是一个自定义函数
  5. //2.系统函数
  6. //获取当前的日期时间
  7. echo date('Y年m月d日 H:i:s');
  8. echo '<hr>';
  9. //3.可变函数:和可变变量类似
  10. $name = 'display';
  11. function display()
  12. {
  13. return 'hello world';
  14. }
  15. //变量名等价于函数名
  16. echo $name();
  17. echo '<hr>';
  18. //4.匿名函数,也叫闭包,指没有函数名的函数
  19. //匿名函数可以使用"use()"访问父作用域的变量
  20. $str = 'world';
  21. $name = function () use ($str): string {
  22. return 'hello ' . $str;
  23. };
  24. echo $name();

3.函数的返回值

序号 类型 描述
1 单值返回 只返回一个值
2 字符串返回 采用字符串拼接的方式返回多个值,是最简单的一种
3 返回数组 将需要返回的多个值放到数组中,返回数组
4 json返回 通用的序列化方式,适用多门语言
5 PHP序列化 只适用于PHP
  1. <?php
  2. //函数的返回值
  3. //原则单值返回
  4. //如果返回多值:
  5. //1.字符串拼接
  6. function test1()
  7. {
  8. return 'hello ' . 'world';
  9. }
  10. echo test1();
  11. echo '<hr>';
  12. //2.数组方式返回
  13. function test2()
  14. {
  15. return [
  16. 'status' => 1,
  17. 'message' => '成功'
  18. ];
  19. }
  20. echo '<pre>' . print_r(test2(), true) . '</pre>';
  21. echo '<hr>';
  22. //3.json方式返回
  23. //json:js对象简谱,是一种数据交换格式,早期为XML
  24. //json就是js对象的字符串表示,只不过键必须加上双引号
  25. //序列化:是指将对象的状态信息转化为可以存储和传输的格式的过程
  26. //json就是序列化的一种,是通用的序列化格式
  27. function test3()
  28. {
  29. //json编码
  30. return json_encode([
  31. 'status' => 1,
  32. 'message' => '成功'
  33. ]);
  34. }
  35. $str = test3();
  36. //json解码
  37. print_r(json_decode($str, true));
  38. echo '<hr>';
  39. //4.PHP序列化
  40. //在PHP中有专门的序列化函数,只在PHP有效
  41. $str = serialize([
  42. 'status' => 1,
  43. 'message' => '成功'
  44. ]);
  45. echo $str;
  46. //PHP反序列化
  47. echo '<pre>' . print_r(unserialize($str), true) . '</pre>';

4.函数的参数类型

序号 类型 描述
1 按值传递 函数中改变值与原值无关
2 引用传递 函数中改变值与原值有关,相当于齐了一个别名
3 默认值 在不传递实参的情况下,使用默认值;默认值从右向左指定
4 剩余参数 在形参和实参不确定个数的情况下非常有用
  1. <?php
  2. //函数的参数类型
  3. //1.按值传递
  4. function test1(float $value): string
  5. {
  6. return $value *= 2;
  7. }
  8. $value = 100;
  9. echo '改变后的值:', test1($value);
  10. echo '<br>';
  11. echo '原值:', $value;
  12. echo '<hr>';
  13. //2.引用传递,相当于起了一个别名
  14. function test2(float &$value): string
  15. {
  16. return $value *= 2;
  17. }
  18. $value = 100;
  19. echo '改变后的值:', test2($value);
  20. echo '<br>';
  21. echo '原值:', $value;
  22. echo '<hr>';
  23. //3.默认值,默认值从右向左指定
  24. function test3(float $num1, float $num2, $op = '+'): string
  25. {
  26. //判断运算符
  27. switch ($op) {
  28. case '+':
  29. $result = $num1 . '+' . $num2 . '=' . ($num1 + $num2);
  30. break;
  31. case '-':
  32. $result = $num1 . '-' . $num2 . '=' . ($num1 - $num2);
  33. break;
  34. case '*':
  35. $result = $num1 . '*' . $num2 . '=' . ($num1 * $num2);
  36. break;
  37. case '/':
  38. $result = $num1 . '/' . $num2 . '=' . ($num1 / $num2);
  39. break;
  40. default:
  41. $result = '非法的运算符';
  42. }
  43. return $result;
  44. }
  45. echo test3(10, 40), '<br>';
  46. echo test3(10, 40, '*');
  47. echo '<hr>';
  48. //4.剩余参数:如果参数很多个,就写很多个形式参数,不太利于开发,这时就可以用剩余参数
  49. //func_get_arg():获取实参列表中的某一个索引值
  50. //func_get_args():获取实参列表值的数组
  51. //func_num_args():获取实参列表值的个数
  52. //实现输入的数值的累加和
  53. function test4() : float
  54. {
  55. //初始化计数器
  56. $total = 0;
  57. //for循环实现累加功能
  58. for ($i = 0; $i < func_num_args(); $i++) {
  59. $total += func_get_arg($i);
  60. }
  61. return $total;
  62. }
  63. echo test4(10, 20, 30, 40);
  64. echo '<br>';
  65. function test5() : float
  66. {
  67. //初始化计数器
  68. $total = 0;
  69. //foreach遍历数组实现累加功能
  70. foreach (func_get_args() as $item) {
  71. $total += $item;
  72. }
  73. return $total;
  74. }
  75. echo test5(10, 20, 30, 40);
  76. echo '<br>';
  77. function test6() : string
  78. {
  79. //数组求和
  80. return array_sum(func_get_args());
  81. //数组求积
  82. // return array_product(func_get_args());
  83. }
  84. echo test6(10, 20, 30, 40);
  85. echo '<br>';
  86. //剩余参数如果放在形参列表中:将每一个形参打包到一个数组中
  87. //剩余参数如果放在实参列表中:将实参数组打散为每一个实参值
  88. function test7(...$args) : float
  89. {
  90. return array_sum($args);
  91. }
  92. $arr = [10, 20, 30, 40];
  93. echo test7(...$arr);

5.总结

  • 函数是PHP非常重要的一块知识
  • 有些新特性以前没见过,或者不是很熟练
  • 博客可以记录知识点和总结,没事可以回来看看
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议