博主信息
博文 17
粉丝 0
评论 0
访问量 15214
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
细说函数学习心得
越努力越幸运
原创
951人浏览过

//demo01

     function caculator(int $a,int $b):int{

     $c=$a+$b;

     return $c;//隐式返回,用echo;

     }

    

     $d=caculator(10.5, 20.3);//返回值仍然是整数,因为参数限定是int

     echo $d.'<br>';

    

     //字符串截取:系统函数

     $a='i like every day';

     $b=substr($a,0,5);

    

     echo $b.'<br>';

    

     //可变函数

     $funcname='caculator';

     echo $funcname(8000,0.8).'<br>';

    

     //匿名函数:闭包;use():闭包专用,可以使用父级变量;

     $discount=0.8;

    

     $getamount=function (float $money,int $num) use ($discount){

     $amount=$money*$num;

     return $amount>=2000?$amount*$discount:$amount;

     };

    

     echo $getamount(200,10).'<br>';

    

     $f=function (float $discount){

     $getamount=function (float $money,int $num) use ($discount){

     $amount=$money*$num;

     return $amount>=2000?$amount*$discount:$amount;

     };

     return $getamount;

     };

    

     echo $f(0.8)(200,10).'<br>';

//demo03

     //返回值

     function result1(){

     $state=1;

     $status='success';

    

     return $state.':'.$status;

     }

    

     echo result1().'<br>';

    

     function result2(){

     $state=1;

     $status=1;

    

     $obj['state']=$state;

     $obj['status']=$status;

    

     return $obj;

     }

    

     var_dump(result2());

     echo '<br>';

    

     function result3(){

     $obj['state']=1;

     $obj['status']='success';

    

     return json_encode($obj);

     }

    

     echo result3().'<br>';

    

     $obj=result3();

     $res=json_decode($obj,true);

    

     var_dump($res);

     echo '<br>';

    

     function result4(){//序列化

     $obj['state']=1;

     $obj['status']='success';

    

     return serialize($obj);

     }

    

     echo result4().'<br>';

    

     //反序列化

     $res=result4();

     $obj1=unserialize($res);

    

     var_dump($obj1);

     echo '<br>';

//demo04

     //值参数

     //引用参数:

     //默认参数

     //剩余参数

    

     function doadd1(float $arg){

     return $arg+=1;

     }

    

     $value=100;

     echo doadd1($value),'<br>';

     echo $value,'<br>';

    

     function doadd2(float &$arg){//引用传递!!!

     return $arg+=1;

     }

    

     $value=100;

     echo doadd2($value),'<br>';

     echo $value,'<br>';//注意,这里的$value值被改变了!!!

    

     //注意:默认参数必须在最后,否则会出错;default的用法注意一下;

     function doadd3(float $a,float $b,string $opt='+'){//默认参数(其实就是参数有一个默认值

     $result=0;

     switch ($opt){

     case '+':$result="$a+$b=".($a+$b);break;

     case '-':$result="$a-$b=".($a-$b);break;

     case '*':$result="$a*$b=".($a*$b);break;

     case '/':$result="$a/$b=".($a/$b);break;

     default:$result='非法操作符';

     }

     return $result;

     }

    

     echo doadd3(10,20).'<br>';

    

    

     //学会两个系统函数:

     //func_num_args();//参数个数

     //func_get_arg();//某个参数(需要索引号)

     //func_get_args();//所有参数(数组)

     //做+=时,或$res=$res+1;时,需要先定义$res;

    

     function doadd4(){

     $res=0;

     $number=func_num_args();

     for ($i=0;$i<$number;$i++){

     $res+=func_get_arg($i);

     }

    

     return $res;

     }

    

     echo doadd4(3,4,7,8,20);

    

     function doadd5(){//变为数组了

     $res=func_get_args();

     return $res;

     }

    

     $res=doadd5(2,3,4,5,6);

    

     var_dump($res);

     echo '<br>';

//demo05剩余参数

    //...$args起到了:$args=func_get_args();的作用;将参数之间变为数组;称为剩余参数;

     function doadd6(...$args){

     return array_sum($args);

     }

    

     print_r(doadd6(3,4,7,8,20).'<br>');

    

     //也可以采用这样的方式:

     $arr=[3,4,7,8,20];

    

     $res=doadd6(...$arr);

     var_dump($res);

     echo '<br>';

    

     $res=doadd6($arr);//注意:直接给$arr是不行的;运行结果是0;

     var_dump($res);

     echo '<br>';

    

    //结论:...$args不仅可以在创建函数时使用,也可以在调用函数时使用;

    

    

    //遍历数组时,list的作用

     $res=array();

     $res[]=[1,'frank'];

     $res[]=[2,'peter'];

     $res[]=[3,'jack'];

    

     foreach ($res as list($id,$name)){

     printf('id=%s,name=%s<br>',$id,$name);

     }

    

    

    

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学