函数的参数类型并演示,匿名函数、回调函数及
参数类型可以是int,float,string,array,function等
1、 参数太少 可使用默认参数 (参数从左往右求值)
function sum1(int $a, int $b, int $c = 10): int
{
return array_sum([$a, $b, $c]);
}
echo sum1(10, 20);
2、可以采用命名参数,只支持php8.0以上版本
function sum2(int $a, int $b, int $c = 10, int $d = 20): int
{
return array_sum([$a, $b, $c, $d]);
}
echo sum2(1, 2, d: 3);
3、参数太多 或者不确定参数的个数 在参数前加… 标识为可变参数实现参数聚拢
function foo($arg, ...$args)
{
var_dump($arg, $args);
}
foo(1, 2, 3, 4, 5);
function boo(...$args)
{
return array_sum($args);
}
echo boo(1, 2.3, 3, 4, 5);
引用参数 &
在参数前面加上& 可以将值传递 变为引用传递,两个变量指向同一个内存地址
function hoo(&$a)
{
return $a += 10;
}
$a = 10;
echo hoo($a); //20
echo $a; //20
$x = 100;
$y = $x; //值传递
$x = 200;
echo $y;
// 函数的返回值 函数遇到return 后面的代码会停止执行,也就是多个return只执行第一个。
function fn1()
{
return json_encode([‘code’ => 0, ‘url’ => ‘https: //www.baidu.com’], 320);
return ‘您好’;
}
格式function ($a){},可以把一个匿名函数当做参数传给另一个函数
$b = 10;
$boo = function ($a) use ($b) {
return $a *= $b;
};
传统的调用
echo $boo(2);
func 把第一个参数作为回调函数调用回调匿名函数
echo call_user_func(function ($a) use ($b) {
return $a *= $b;
}, 2);
call_user_func($boo, 2);
命名函数
function boo(...$args)
{
return array_sum($args);
}
echo boo(1, 2.3, 3, 4, 5);
回调一个命名函数
echo call_user_func(‘boo’, …[1, 2.3, 3,]);
echo call_user_func_array(‘boo’, [1, 2.3, 3]); //展开
回调:在主线程执行的过程中,突然跳到预先设置好的函数中去执行的函数
php单线程 同步执行 ,如果遇到耗时的函数会发生阻塞,应该将它改为异步回调来去执行
递归函数 recursion 是指直接或间接地调用函数自身的函数,必须有一个终止处理或计算的准则
function demo($a = 1)
{
if ($a <= 5) {
echo “第{$a}次执行” . PHP_EOL;
$a++;
demo($a);
}
}
demo();
delete_dir_file 删除指定目录
params: 指定需要删除的目录路径
return:返回布尔值 成功true 失败false
谨慎调用 目录会被永久删除 记得备份
因为异步函数少了await,浪费了好多调试时间;函数部分比较简单,跟老师敲了一遍,有时间再细看吧;匿名函数可以作为变量赋值;在js里朱老师讲回调函数不会释放变量,有些场景可以用来存储变量不会相互污染,比如投票;PHP中不存在变量向内可用的问题,所以应该跟js的意义不同。
【本文由:防ddos攻击 http://www.558idc.com/gfcdn.html提供,感恩】