博主信息
博文 16
粉丝 0
评论 0
访问量 14853
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP函数的理解与使用
evan
原创
887人浏览过

函数的声明与调用

  1. <?php
  2. // 函数的声明与调用
  3. function study(){
  4. echo "小明读一年级";
  5. }
  6. // 调用输出
  7. study();
输出如图:

函数的类型

  1. <?php
  2. // 函数的类型
  3. // 1.自定义函数,func为函数名,$a和$b为函数参数,需要在调用函数时, 提供相应的实参。
  4. function func($a, $b)
  5. {
  6. echo $a+$b;
  7. }
  8. func(2,5) ;
  9. echo '<hr>';
  10. // 2. 系统函数,系统自带,无需定义直接使用;
  11. // 随机输出范围内的数字
  12. echo rand(1,100).'<br>';
  13. $t=time();
  14. echo (date("Y-m-d", $t));
  15. //3.可变函数
  16. function func2($a,$b){
  17. return $a +$b;
  18. };
  19. $sum ='func2';
  20. echo $sum(10,20);
  21. echo '<br>';
  22. echo func2(10,20);
  23. // 4.匿名函数 ,也叫具名函数,就是没有名字的函数,一般用于回调函数。
  24. //将一个没有函数名的函数赋值给一个变量
  25. $sum = function ($x, $y) {
  26. return $x + $y;
  27. };
  28. echo $sum(10, 20);

函数返回值

  1. <?php
  2. // 函数的返回值
  3. // 1.通过return 返回值
  4. function sum($x, $y)
  5. {
  6. $z = $x + $y;
  7. return $z;
  8. }
  9. echo "5 + 10 = " . sum(5, 10) . "<br>";
  10. echo "7 + 13 = " . sum(7, 13) . "<br>";
  11. echo "2 + 4 = " . sum(2, 4) . "<br>";
  12. echo "2 + 4 = " . sum(8, 2);
  13. //2.通过数组返回值
  14. function num()
  15. {
  16. return array(0, 1, 2);
  17. }
  18. list($zero, $one, $two) = num();
  19. //3.通过json返回字符串
  20. function demo()
  21. {
  22. $user_id = 1;
  23. $user_name = 'peter';
  24. return json_encode(['id' => $user_id, 'name' => $user_name]);
  25. }
  26. echo demo();
  27. // 输出:{"id":1,"name":"\u5f20\u4e09"}
  28. //也可以使用json_decode()转回数组;(不加第二个参数默认转换为对象)
  29. print_r(json_decode(demo(), true));
  30. //4.通过序列化方式返回字符串
  31. function demo2()
  32. {
  33. $user_id = 1;
  34. $user_name = 'peter';
  35. return serialize(['id' => $user_id, 'name' => $user_name]);
  36. }
  37. echo demo2();
  38. // 输出:a:2:{s:2:"id";i:1;s:4:"name";s:6:"peter";}
  39. //a表示数组,2个元素,
  40. //第1个元素键名为id为string类型,长度是2,值为int类型,长度是1
  41. //第2个元素键名为name为string类型,长度是4,值为string类型,长度是6
  42. // 反序列化: 还原
  43. print_r(unserialize(demo2()));

函数的参数

  1. <?php
  2. // 函数参数
  3. // 1.一般参数
  4. function sum(float $x, float $y): float
  5. {
  6. return $x + $y;
  7. }
  8. //调用
  9. echo sum(10, 12);
  10. //输出:22
  11. //2.默认参数
  12. //函数声明:求两个参数的和
  13. function sum2(float $x, float $y = 20): float
  14. {
  15. return $x + $y;
  16. }
  17. //调用
  18. echo sum2(10);
  19. //输出:30
  20. //3.引用参数,添加取地址符&
  21. function sum3(float &$y): float
  22. {
  23. return $y *= 2;
  24. }
  25. $peter = 5;
  26. //在函数参数中引用变量$p
  27. echo sum3($peter);
  28. //函数内部对参数的更新会实时映射到外部实际参数$p
  29. echo $peter;
  30. //4.剩余参数
  31. // 例如:一个数量不固定的数求和,参数前面加...
  32. function func(...$number)
  33. {
  34. //array_sum为数组求和函数
  35. return array_sum($number);
  36. }
  37. // 定义数组
  38. $arr = [2, 2, 2, 2, 2];
  39. // 无论数组有多少个,全部进行计算
  40. $num_sum = func(...$arr);
  41. echo $num_sum;

函数的命名空间

  1. <?php
  2. // 函数的命名空间,命名空间一个最明确的目的就是解决重名问题,
  3. // PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。
  4. // 这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
  5. namespace ns1 {
  6. function func(){
  7. return '我是ns1的func';
  8. }
  9. }
  10. namespace ns2 {
  11. function func(){
  12. return '我是ns2的func';
  13. }
  14. }
  15. // 全局空间: 匿名空间,默认空间
  16. namespace {
  17. function func(){}
  18. echo ns1\func();
  19. }
批改老师:GuanhuiGuanhui

批改状态:合格

老师批语:写的不是很好!作业要认真对待!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学