Blogger Information
Blog 17
fans 0
comment 0
visits 12548
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
细说函数学习心得
越努力越幸运
Original
762 people have browsed it

//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);

     }

    

    

    

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