博主信息
博文 28
粉丝 0
评论 0
访问量 29557
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
细说函数的构成
暝皑祯π_π
原创
1079人浏览过
  1. <?php
  2. // 自定义函数
  3. $number = 5;
  4. $name = ['zhao' , 'qian' , 'shun' ,' li' ,' chen' , 'wamg' ,'zhang'];
  5. function unit(int $number): string
  6. {
  7. // global连接全局变量
  8. global $name;
  9. $number = $name[$number-1];
  10. return $number;
  11. }
  12. // 调用函数
  13. echo unit(2);
  14. echo '<hr>';
  15. // 系统函数
  16. // 系统函数是已经定义好的函数,可以直接调用
  17. // 把二进制转换为16进制的函数
  18. echo bin2hex('chen') . '<hr>';
  19. // 获得当前工作目录
  20. echo getcwd();
  21. echo '<hr>';
  22. // 可变函数,使用变量名作为函数名
  23. // 当变量的后面有圆括号时,系统自动搜索是否有同名的函数并尝试调用它
  24. // 可以在实现回调函数,函数表应用
  25. $a = 'unit';
  26. echo $a(1);
  27. echo '<hr>';
  28. // 匿名函数:也叫闭包
  29. // 可以作为变量的值来使用
  30. // 'use':继承父级作用域中的变量。和命名函数中的'global'一样使用
  31. $name = ['zhao' , 'qian' , 'shun' ,' li' ,' chen' , 'wamg' ,'zhang'];
  32. $a = function ($number) use ($name): string
  33. {
  34. return $number = $name[$number-1];
  35. };
  36. // 直接用变量加参数调用
  37. echo $a(5);
  38. echo '<hr>';
  39. // 返回值 多个值的返回方式
  40. // 字符串拼装
  41. function unit1(): string
  42. {
  43. $number = 1;
  44. $name = 'xiaoming';
  45. return $number. '号是' . $name;
  46. }
  47. echo unit1();
  48. echo '<hr>';
  49. // 通过数组返回
  50. function unit2(): array
  51. {
  52. $number = 1;
  53. $name = 'xiaoming';
  54. $gender = 'man';
  55. return [$number , $name , $gender];
  56. }
  57. print_r(unit2());
  58. echo '<hr>';
  59. // JSON:json_encode()
  60. function unit3(): string
  61. {
  62. $number = 1;
  63. $name = 'xiaoming';
  64. $gender = 'man';
  65. // 也可以返回字符串:return json_encode($number);
  66. return json_encode([$number , $name , $gender]);
  67. }
  68. echo unit3();
  69. echo '<hr>';
  70. // 序列化:serialize()
  71. function unit4(): string
  72. {
  73. $number = 1;
  74. $name = 'xiaoming';
  75. $gender = 'man';
  76. // 也可以返回字符串:return serialize($number);
  77. return serialize([$number , $name , $gender]);
  78. }
  79. echo unit4();
  80. // 返回的都是字符串,只是显示的格式不一样,'JSON'和序列化需要解码
  81. echo '<hr>';
  82. // 参数
  83. // 值传递:默认
  84. // 只调用它的值在函数内部进行计算,不改变原始值。
  85. $work = 'php';
  86. function g($work){
  87. return $work = $work . '中文网';
  88. }
  89. $l = g($work);
  90. // 输出:php中文网
  91. echo $l;
  92. echo '<hr>';
  93. // 输出:php
  94. echo $work;
  95. echo '<hr>';
  96. // 引用传递
  97. // 添加取地址符&,在改变函数内部的值时,所引用的原始值也一起被改变
  98. $work = 'php';
  99. function g1(&$work){
  100. return $work =$work . '中文网';
  101. }
  102. $l = g1($work);
  103. // 输出:php中文网
  104. echo $l;
  105. echo '<hr>';
  106. // 输出:php
  107. echo $work;
  108. echo '<hr>';
  109. // 默认参数
  110. // 必须写在参数的最后面
  111. // 默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等
  112. function g2($c , $work = '中文网'){
  113. return $c . $work;
  114. }
  115. echo g('php');
  116. echo '<hr>';
  117. // 剩余参数
  118. // '...'参数归纳
  119. // 用在函数的形式参数列表中,表示"收集",将多个离散的参数打包到一个数组中处理
  120. function are(...$por):array
  121. {
  122. return $por;
  123. }
  124. print_r( are(1,2,3,4,5,6,7,8,9));
  125. echo '<hr>';
  126. // 用在函数的调用参数列表中,表示"展开",还原将一个数组展开成一个个离散的值
  127. $gpr = [1,2,3,4,5,6,7,8,9];
  128. function are2(...$gpr):array
  129. {
  130. return $gpr;
  131. }
  132. print_r(are2(...$gpr));

总结

  • 函数是可以在程序中重复使用的语句块
  • 今天主要学习函数的组成

  • 函数名称:命名的和匿名的,系统的和自定义的,可变的和不变的,以及globalhe use的用法

  • 函数的返回值:返回的都是字符串,只是显示的格式不一样,’JSON’和序列化需要解码

  • 函数传递参数的四种方式,分别是值传递、引用传递(&)、默认参数和剩余参数(…)。

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:完成的不错
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学