当前位置: 首页 > wzjs >正文

专业做家居的网站湖南省建设监理协会网站

专业做家居的网站,湖南省建设监理协会网站,网站素材模板 站长,制作ppt教程视频自学简介 在 PHP 7.4 中,官方引入了 箭头函数(Arrow Functions),语法简洁、行为类似 JavaScript 的箭头函数,同时保留了 PHP 的闭包特性。 基本语法 fn(parameter_list) > expression;使用 fn 关键字。 parameter_l…

简介

PHP 7.4 中,官方引入了 箭头函数(Arrow Functions),语法简洁、行为类似 JavaScript 的箭头函数,同时保留了 PHP 的闭包特性。

基本语法

fn(parameter_list) => expression;
  • 使用 fn 关键字。

  • parameter_list:函数的参数,可以为空或包含多个参数

  • =>:箭头符号,分隔参数和函数体

  • expression:函数的返回值,通常是单行表达式(不支持多行语句块)

  • 只能用于单表达式体,不能有语句块、return 关键字或多行语句。

  • 自动从父作用域继承变量(不需要 use)。

特性说明

自动变量绑定(Lexical Scoping

箭头函数中使用外部变量时,不需要使用 use()

$a = 5;
$fn = fn($b) => $a + $b;
echo $fn(3); // 8
不支持多行或复杂逻辑
$fn = fn($x) => {$y = $x * 2;return $y;
}; // ❌ 错误

应该使用传统匿名函数:

$fn = function($x) {$y = $x * 2;return $y;
};
不能修改外部变量

由于箭头函数捕获外部变量是值传递,修改函数内部的变量不会影响外部变量。

$x = 10;
$fn = fn($a) => $a + ($x += 5); // 错误:不能修改 $x
echo $fn(5); // 抛出错误

如果需要修改外部变量,需使用传统匿名函数并通过 use (&$x) 传递引用。

箭头函数 vs 匿名函数

普通匿名函数
$factor = 10;$square = function($n) use ($factor) {return $n * $factor;
};echo $square(2); // 20
箭头函数(更简洁)
$factor = 10;$square = fn($n) => $n * $factor;echo $square(2); // 20
与传统匿名函数的对比
特性箭头函数 (fn)传统匿名函数 (function)
语法简洁:fn($x) => $x * 2冗长:function ($x) use ($y) { return $x * 2; }
变量捕获自动按值捕获外部变量需显式使用 use 捕获变量(支持引用)
函数体仅支持单行表达式支持多行语句块
return 关键字隐式返回需显式使用 return
性能略高(更轻量级)略低(更灵活但稍重)

何时使用箭头函数:

  • 需要简洁的单行逻辑(如数组操作的回调)。

  • 不需要修改外部变量。

  • 用于简单的闭包或回调函数(如 array_map、array_filter 等)。

何时使用传统匿名函数:

  • 需要多行逻辑。

  • 需要通过引用修改外部变量。

  • 需要更复杂的控制结构(如循环、条件语句)。

示例用法

数组映射
$nums = [1, 2, 3];
$result = array_map(fn($x) => $x * 2, $nums);
// [2, 4, 6]
数组过滤
$users = [['id' => 1, 'active' => true],['id' => 2, 'active' => false],
];$activeUsers = array_filter($users, fn($u) => $u['active']);
// 只保留 active 为 true 的用户
闭包作为参数

简化事件处理器、中间件等场景

// 模拟一个中间件
$middleware = function ($request, $next) {// 处理请求...return $next($request);
};// 使用箭头函数简化
$middleware = fn ($request, $next) => $next($request);
排序回调

简化 usortuasort 的比较逻辑

$users = [['name' => 'Alice', 'age' => 30],['name' => 'Bob', 'age' => 25],
];// 按年龄升序排序
usort($users, fn ($a, $b) => $a['age'] <=> $b['age']);
动态生成条件过滤器
$minPrice = 100;
$products = [['name' => 'A', 'price' => 80],['name' => 'B', 'price' => 150],
];// 过滤价格 >= $minPrice 的商品
$filtered = array_filter($products,fn ($product) => $product['price'] >= $minPrice
);
链式调用中的闭包
$data = [1, 2, 3];
$processed = array_map(fn ($x) => $x * 2,array_filter($data,fn ($x) => $x > 1)
);
// 结果: [4, 6]
嵌套箭头函数
$multiplier = fn($x) => fn($y) => $x * $y;
$double = $multiplier(2);
echo $double(5); // 输出:10
结合高阶函数

箭头函数可以作为参数传递给其他函数。

function applyCallback(array $data, callable $callback) {return array_map($callback, $data);
}$result = applyCallback([1, 2, 3], fn($x) => $x ** 2);
print_r($result); // 输出:[1, 4, 9]

文章转载自:

http://Nenmd3by.kgnnc.cn
http://ZX2DGcqf.kgnnc.cn
http://QPYEGmj0.kgnnc.cn
http://ZT4YTWzu.kgnnc.cn
http://U1eJEpJw.kgnnc.cn
http://OIBHlaL4.kgnnc.cn
http://IDVxyc7u.kgnnc.cn
http://RrZj8PH3.kgnnc.cn
http://4EdnpDev.kgnnc.cn
http://ier4ghA2.kgnnc.cn
http://7sXOubHN.kgnnc.cn
http://8f24dQWW.kgnnc.cn
http://57fIgXcH.kgnnc.cn
http://YXPOobgr.kgnnc.cn
http://ltvUJ5Ol.kgnnc.cn
http://9bziBxBe.kgnnc.cn
http://LtRaiQHc.kgnnc.cn
http://xaKRDu5x.kgnnc.cn
http://WCyzLwMs.kgnnc.cn
http://p2rwIGaa.kgnnc.cn
http://Pah1tTrA.kgnnc.cn
http://r9qQBmlP.kgnnc.cn
http://EBHMkrKV.kgnnc.cn
http://SHkYECWn.kgnnc.cn
http://FYlSb8A9.kgnnc.cn
http://QwZ7U6dC.kgnnc.cn
http://vPlvJxxU.kgnnc.cn
http://MYFfk87J.kgnnc.cn
http://Q3jxSUrd.kgnnc.cn
http://4dGDtilx.kgnnc.cn
http://www.dtcms.com/wzjs/667549.html

相关文章:

  • 站长工具ip查询手机端网站开发
  • 网站后台密码文件柳州房地产网站建设
  • 引导式网站wordpress分类文章排序
  • 金华网站建设制作ps中怎样做网站轮播图片
  • 网站安全建设方案网上推广引流的有用吗?
  • 网站怎么上传模板wordpress商业版
  • 网站备案幕布大小贵州网站建设维护
  • 一个网站项目开发流程厦门谷歌seo
  • 网站建设数据安全的意义你在四川省建设安全与质量监督网站
  • 高端建站平台设计风格出众拍卖网站建设公司
  • php做直播类型的网站手机免费网站建设
  • 如何进行网站运营与规划wordpress插件汉化下载
  • 公司网站建设内容二手建筑铝模板哪里有卖
  • 上海高端网站建设wordpress空间满
  • 郑州百度seo网站优网络营销的基本方式有哪些
  • 有人打电话说请我做网站 骗子大连seo排名优化
  • 做准的算命网站建立网站的流程
  • 做手机网站费用seo网站推广专员招聘
  • 安庆网站建设专业西部数码网站管理助手3.0教程
  • 沧州手机网站关于加强公司网站建设的通知
  • 自己做网站帮别人卖东西wordpress播放器修改
  • 中国机械加工网官方网站怎样建设企业网站
  • 购物网站建设要多少钱熊掌号wordpress
  • 公司域名注册网站哪个好免费ppt生成器
  • 兴县网站建设国企招聘网最新招聘2023
  • 网站开发话题wordpress搭建内网导航
  • 管理信息系统网站建设网站运营专员
  • 网站开发话术在四川省住房和城乡建设厅网站上查
  • html个人网站设计模板做游戏制作 网站
  • 铜陵市住房和城乡建设局网站国际互联网出口