博客列表 >函数语法、参数收集

函数语法、参数收集

我想买个好耳机
我想买个好耳机原创
2020年04月22日 09:39:05401浏览

<?php

//函数语法

function func1(int $a,int $b):float

{

   return $a+$b;//显示返值

}

echo func1(1.5,1.2);

echo '<hr>';


//命名函数   定义一个有参有返函数

function bianLiang1(float $a,float $b):float{

    return $a*$b;

}

echo bianLiang1(100,0.88);//调用函数,并传参

echo '<hr>';


//系统函数   系统自带函数  不用定义,拿来就能用

$str='哈尔滨防控漏洞为全国敲响新的闹钟';

$ss=mb_substr($str,0,5);//截取str字符串,从下标0开始,到5结束

//mb_是转换编码格式,把ASCLL转换为utf8(系统默认为ASCLL,utf8为中文编码)

echo $ss.'<br>';


//可变函数  把函数赋值给变量,可通过变量来调用函数

$fucnName='func1';

echo $fucnName(80,0.9).'<br>';


//匿名函数   没有名字的函数

//变量保存的函数,实质上是保存的一个对象


$bianLiang2=function ($a,$b){

    echo $a.'hello world'.$b;

};

$bianLiang2(1,2);


//闭包

//函数内部有一些局部变量(要执行的代码块)在函数结束后没有被释放

function display(){

    $name=__FUNCTION__;

    $neibufunction=function () use ($name) {

        echo $name;//内部匿名函数调用父级元素,使用use

    };


    $neibufunction();//调用函数

}

display();


//返回值

//单值返回

function demo1():string{


    return '11';

}


//多值返回

//1字符串拼接

function demo2():string{

    $a=1;

    $b=2;

    return $a.'+'.$b;

}


//2数组  将多个元素以键值对的方式打印出来

function demo3():array{


    return ['sex'=>'男','age'=>18];

}

$r=print_r(demo3(),true);

printf('%s',$r);


// 3. 通过JSON返回

function demo4():string{

    return json_encode(['sex'=>'女','age'=>20]);

    //将元素以键值对的方式存储在json

}

echo demo4();

//--------------------------------------------

$var=json_decode(demo4(),true);//从json中取出数据

print_r($var);

//--------------------------------------------

//4。序列化

function demo5():string{

    return serialize(['number'=>12123,'class'=>11]);

}

echo demo5();

//反序列化

$unvar=unserialize(demo5());//返回类型是序列化之前的类型

printf('%s',print_r($unvar,true));//格式化输出数据

echo '<hr>';


//函数参数

//1值参数

function demo6(int $arg):int{


    return $arg*2;

}

$vv=100;

echo demo6($vv);//返回的只是计算结果,不会改变变量的值

echo '<hr>';


//引用参数

function demo7(int &$arg):int{//在参数前使用取地址符&,就会改变原始调用参数的值

    return $arg*2;

}

$vv=100;

echo demo7($vv);

echo '<hr>';

echo $vv;


//默认参数,它必须写在必选参数的后面

function demo8($a,$b=1){

    return $a+$b;

}

echo '默认参数';

echo demo8(2);


//收集参数

function demo9(...$item){

    $to=0;

    foreach($item as $value){

        $to+=$value;

    }

    return $to;

}

echo '收集参数';

echo demo9(1,2,3,4,5);


数组解析

$user[] = [100, 'admin', 90];

$user[] = [110, 'peter', 60];

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

    //解析数组,分开输出打印

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

    //格式化输出

 }


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议