Blogger Information
Blog 16
fans 0
comment 0
visits 11320
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP函数的理解与使用
evan
Original
671 people have browsed it

函数的声明与调用

  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. }
Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:写的不是很好!作业要认真对待!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post