函数的组成:

1.函数有关键字function、函数名、参数以及函数体组成和函数返回值;
2.函数的参数可以约定类型,在参数声明参数类型关键字,函数参数通过来约定函数返回值类型
3.例子

  1. function sum(int a,int b):int
  2. {
  3. return $a+$b;
  4. }

函数分类:

  • 命名函数:就是普通函数;函数具有自动提升,在全局任何时候调用都有效,变量不行;
  • 匿名函数:与命名函数就就差函数名,一般当作参数,返回值等等,匿名函数一般赋值给变量调用;匿名函数可以通过use来允许函数调用时使用函数外部变量

函数参数的分类

1.必须参数:在函数调用时,必须传参
2.默认参数:参数有默认值,函数调用可以不传参
3.可选参数:参数数量不定;函数调用时传几个用几个,类似JS种的剩余参数
4.引用参数:参数前面加&引用符,引用参数,可以不用return直接实时改变函数外部的变量

函数的返回值:单值

1.数组
2.对象
3.序列化字符串:

  • PHP内容序列化函数:serialize()序列化和unserialize()反序列化
  • 通用序列化:json_encode():转换陈字符串,json_decode():解析字符串(默认返回对象类,第二个参数设置true时返回数组)

函数的作用域:

1.函数作用域:函数调用时产生作用域,作用域的操作无法使用直接使用外部变量和影响外部的值;
2.使用外部变量可以同 global声明变量时全局变量,或者通过超全局变量$GLOBALS[0]使用外部变量
3.匿名函,数可以通过use来使用外部变量,函数结束后就会释放外部变量;如果想实时改变外部变量可以同通过取值符&use(参数)前加上取值符即可

4 . use禁止使用以下三种参数

    1. 超全局变量不让用
    1. $this
    1. 与当前参数重名不让用

PHP中异步调用函数

1.call_user_func(“函数名”,函数参数);
2.call_user_func_array(“函数名”,函数参数列表);
3.调用实列方法的用法

  1. //实例方法的调用
  2. call_user_func_array([new User,"show"],[参数列表]);
  3. //类静态方法的调用
  4. call_user_func_array("User::say",[参数列表]);

函数种的静态

1.函数中的静态变量不会随函数调用结束而消失
2.他会自动进入到下一次的函数调用中
3.可以实现在函数的多次调用过程中:共享数据 / 数据通信

PHP基础知识点:

1.explode(‘分界符’,字符串):把字符串拆成组装成索引数组;
2.implode(‘分隔符’,数组):把数组种的值展开组成字符串并返回
3.函数中与参数有关的函数:

  • func_sum_args():获得参数个
  • func_get_arg():获得所有参数
  • func_get_args(n):获取某个参数n索引

4.extract():把关联数组中的拉平成变量,键做变量名,值做变量值

代码练习

  1. <?php
  2. function sum(int $a,int $b) :string
  3. {
  4. return $a+$b;
  5. }
  6. echo var_dump(sum(12.23,5));
  7. function show(string $name="种业圈"):string
  8. {
  9. return $name."欢迎你!";
  10. }
  11. echo show();
  12. echo show("zhongyequan");
  13. function avg(...$agr):string
  14. {
  15. return array_sum($agr)/count($agr);
  16. }
  17. echo avg(1,2,3,4);
  18. $arr_p=["name"=>"ldy","age"=>20];
  19. echo implode(",",$arr_p);
  20. var_dump(explode(",",implode(",",$arr_p)));
  21. extract($arr_p);
  22. echo $name,$age;
  23. $a=10;
  24. echo '$a的原始值',$a;
  25. function change(int &$a)
  26. {
  27. $a++;
  28. }
  29. echo change($a);
  30. echo '运行函数后$a的值',$a;
  31. echo "<hr>";
  32. function Asc(){
  33. static $a=0;
  34. return $a++."<br>";
  35. }
  36. echo Asc();
  37. echo Asc();
  38. echo Asc();
  39. echo Asc();
  40. echo "<hr>";
  41. $site="种业圈";
  42. $bg=function (string $a,string $b) use ($site){
  43. return $a.$b.$site;
  44. };
  45. echo $bg("你好!","欢迎你来到");
  46. function arr(string $a,int $b) :string
  47. {
  48. return json_encode(["name"=>$a,"age"=>$b]);
  49. }
  50. echo arr("ldy",20);
  51. var_dump(json_decode(arr("ldy",20),true)) ;

更多相关文章

  1. PHP基础: 函数作用域与闭包,回调的使用场景与参数调用和函数的多
  2. PHP函数中那些容易忽略的细节
  3. php函数讲解
  4. 函数作用域与闭包、回调使用场景与参数调用、函数的多值返回
  5. 面向对象与函数式编程的简单案例
  6. 函数作用域与闭包-回调与参数-函数多值返回类型方式
  7. 0108-JSON二个函数,get,post发起ajax请求,理解跨域的原理
  8. 函数的声明与定义
  9. 一次List对象去重失败,引发对Java8中distinct()的思考

随机推荐

  1. [转]快速切换Android工程版本的方法
  2. [原创]Android在eclipse下出现Failed to
  3. android 8.0 Notification 的处理
  4. android进程创建分析
  5. [转]有关Android线程的学习
  6. Android 内存浅析【管理、机制、分析】
  7. Android双向选择控件DoubleSeekBar使用详
  8. Android_TextView属性XML详解
  9. 每一位Android开发者应该知道的Android体
  10. Android Q Beta 6 终极测试版发布!