1.函数的作用
函数是实现代码复用的重要方法,可直接在需要的地方直接调用。
2.函数类型
函数有4种类型:自定义函数,系统函数,可变函数,匿名函数。
自定义函数:function del(){…}|自己定义一个del()函数
演示:<?php
function del($a,$b)
{return $a*$b;
}
echo del(10,20);
输出结果:
```
系统函数:printf(),count()|系统预定义的函数,不同function声明,直接调用就可以使用
演示:<?php
function del($a,$b)
{return $a*$b;
}
printf(del(10,20));//printf()是系统预定义的函数,可以直接打印输出函数内内容//
输出结果:
- 可变函数:$getName…|函数用变量来表示
演示:````php
<?php
function del(float $a, float $b):float
{
return $a/$b;
}
$del = 'del';
echo '湖人队的胜率是'.$del(62,82);
输出结果:
匿名函数:$money=function (){….}|其实就是闭包函数,主要是用于回调处理
演示:根据赛前预测的概率,判断出湖人队的胜率,来计算出本赛季夺冠的概率
<?php
$key=function ($res){
return function (float $a,float $b)use($res)
{
$k=($a/$b)*$res;
return '湖人队的夺冠率是'.$k;
};
};
echo $key(0.9)(62,82);
重点.use关键字可以引用函数外部的变量或者外部的形参。
个人理解:,如果父作用域是一个函数,子函数要先return,不然会报错。
3.函数的返回值
原则上函数的返回是单值,由于其他的需要,往往需要多值。
- 字符串的拼装
演示:显示用户的状态
<?php
function dome():string
{
$status=0;
$res='退出';
return '用户的状态是' .$status .':'. $res;
}
echo dome();
输出结果:
- 数组的方式
演示:判断$status来判断付款的状态
<?php
function demo2() : array
{
return ['status'=>1, 'message'=>'成功'];
}
$res=print_r(demo2(),true);
printf('<pre>%s</pre>',$res);
echo demo2()['status']==1?'用户付款'.demo2()['message']:'失败';
输出结果:
- JSON格式返回
个人难点(json只知道是一种格式,没有大规模的接触前段,只是看朱老师的视频跟着ajax用过几次)
演示:判断$status来判断付款的状态
<?php
function demo3() : string
{
return json_encode(['status'=>1,'message'=>'成功']);
}
$data= demo3();
$var=json_decode($data,true);
if($var['status']){
echo '用户付款'.$var['message'];
}else{
echo '用户付款失败';
}
输出结果:
注意点:json_encode()函数对变量进行 utf—8 编码|json_decode()函数将json数据还原
- 序列化返回多个数值,json其实也是序列化的一种形式
演示:判断$status来判断付款的状态
<?php
function demo4() : string
{
return serialize(['status'=>1,'message'=>'成功']);
}
echo demo4();
echo '<hr>';
$data=unserialize(demo4());
if($data['status']==1){
echo '用户付款'.$data['message'];
}else{
echo '用户付款失败!';
}
输出结果:
注意点:serialize()函数用来序列化一个数组,unserialize()用来反序列对象