博客列表 >PHP函数的理解与使用

PHP函数的理解与使用

evan
evan原创
2020年07月08日 13:23:27666浏览

函数的声明与调用

  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. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议