登录  /  注册
博主信息
博文 38
粉丝 0
评论 0
访问量 28677
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
函数的参数类型并演示,匿名函数、回调函数及对回调函数的理解
一个好人
原创
749人浏览过

函数的参数

参数类型可以是int,float,string,array,function等
1、 参数太少 可使用默认参数 (参数从左往右求值)

  1. function sum1(int $a, int $b, int $c = 10): int
  2. {
  3. return array_sum([$a, $b, $c]);
  4. }
  5. echo sum1(10, 20);

2、可以采用命名参数,只支持php8.0以上版本

  1. function sum2(int $a, int $b, int $c = 10, int $d = 20): int
  2. {
  3. return array_sum([$a, $b, $c, $d]);
  4. }
  5. echo sum2(1, 2, d: 3);

3、参数太多 或者不确定参数的个数 在参数前加… 标识为可变参数实现参数聚拢

  1. function foo($arg, ...$args)
  2. {
  3. var_dump($arg, $args);
  4. }
  5. foo(1, 2, 3, 4, 5);
  6. function boo(...$args)
  7. {
  8. return array_sum($args);
  9. }
  10. echo boo(1, 2.3, 3, 4, 5);

引用参数 &
在参数前面加上& 可以将值传递 变为引用传递,两个变量指向同一个内存地址

  1. function hoo(&$a)
  2. {
  3. return $a += 10;
  4. }
  5. $a = 10;
  6. echo hoo($a); //20
  7. echo $a; //20
  8. $x = 100;
  9. $y = $x; //值传递
  10. $x = 200;
  11. echo $y;

// 函数的返回值 函数遇到return 后面的代码会停止执行,也就是多个return只执行第一个。
function fn1()
{
return json_encode([‘code’ => 0, ‘url’ => ‘https: //www.baidu.com’], 320);
return ‘您好’;
}

匿名函数

格式function ($a){},可以把一个匿名函数当做参数传给另一个函数

  1. $b = 10;
  2. $boo = function ($a) use ($b) {
  3. return $a *= $b;
  4. };

传统的调用

  1. echo $boo(2);

func 把第一个参数作为回调函数调用回调匿名函数

  1. echo call_user_func(function ($a) use ($b) {
  2. return $a *= $b;
  3. }, 2);
  4. call_user_func($boo, 2);

命名函数

  1. function boo(...$args)
  2. {
  3. return array_sum($args);
  4. }
  5. 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的意义不同。

批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学