博客列表 >函数的四种类型,以及四种返回值个人理解演示总结

函数的四种类型,以及四种返回值个人理解演示总结

混混
混混原创
2020年04月23日 02:59:385891浏览

1.函数的作用

函数是实现代码复用的重要方法,可直接在需要的地方直接调用。

2.函数类型

函数有4种类型:自定义函数,系统函数,可变函数,匿名函数。


  1. 自定义函数:function del(){…}|自己定义一个del()函数
    演示:

    <?php
    function del($a,$b)
    {

    1. return $a*$b;

    }

    echo del(10,20);

输出结果:
```


  1. 系统函数:printf(),count()|系统预定义的函数,不同function声明,直接调用就可以使用
    演示:

    <?php
    function del($a,$b)
    {

    1. return $a*$b;

    }

    printf(del(10,20));//printf()是系统预定义的函数,可以直接打印输出函数内内容//
    输出结果:


  1. 可变函数:$getName…|函数用变量来表示
    演示:````php
  1. <?php
  2. function del(float $a, float $b):float
  3. {
  4. return $a/$b;
  5. }
  6. $del = 'del';
  7. echo '湖人队的胜率是'.$del(62,82);

输出结果:


匿名函数:$money=function (){….}|其实就是闭包函数,主要是用于回调处理

演示:根据赛前预测的概率,判断出湖人队的胜率,来计算出本赛季夺冠的概率

  1. <?php
  2. $key=function ($res){
  3. return function (float $a,float $b)use($res)
  4. {
  5. $k=($a/$b)*$res;
  6. return '湖人队的夺冠率是'.$k;
  7. };
  8. };
  9. echo $key(0.9)(62,82);

重点.use关键字可以引用函数外部的变量或者外部的形参。

个人理解:,如果父作用域是一个函数,子函数要先return,不然会报错。

3.函数的返回值

原则上函数的返回是单值,由于其他的需要,往往需要多值。

  1. 字符串的拼装
    演示:显示用户的状态
  1. <?php
  2. function dome():string
  3. {
  4. $status=0;
  5. $res='退出';
  6. return '用户的状态是' .$status .':'. $res;
  7. }
  8. echo dome();

输出结果:


  1. 数组的方式
    演示:判断$status来判断付款的状态
  1. <?php
  2. function demo2() : array
  3. {
  4. return ['status'=>1, 'message'=>'成功'];
  5. }
  6. $res=print_r(demo2(),true);
  7. printf('<pre>%s</pre>',$res);
  8. echo demo2()['status']==1?'用户付款'.demo2()['message']:'失败';

输出结果:


  1. JSON格式返回
    个人难点(json只知道是一种格式,没有大规模的接触前段,只是看朱老师的视频跟着ajax用过几次)

演示:判断$status来判断付款的状态

  1. <?php
  2. function demo3() : string
  3. {
  4. return json_encode(['status'=>1,'message'=>'成功']);
  5. }
  6. $data= demo3();
  7. $var=json_decode($data,true);
  8. if($var['status']){
  9. echo '用户付款'.$var['message'];
  10. }else{
  11. echo '用户付款失败';
  12. }

输出结果:

注意点:json_encode()函数对变量进行 utf—8 编码|json_decode()函数将json数据还原


  1. 序列化返回多个数值,json其实也是序列化的一种形式

演示:判断$status来判断付款的状态

  1. <?php
  2. function demo4() : string
  3. {
  4. return serialize(['status'=>1,'message'=>'成功']);
  5. }
  6. echo demo4();
  7. echo '<hr>';
  8. $data=unserialize(demo4());
  9. if($data['status']==1){
  10. echo '用户付款'.$data['message'];
  11. }else{
  12. echo '用户付款失败!';
  13. }

输出结果:

注意点:serialize()函数用来序列化一个数组,unserialize()用来反序列对象

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
混混2020-04-23 14:15:581楼
好的,时间有点仓促,还没有配置编译器,周末给他配好