数字化技能提升教程,数字化时代生存宝典

首页 / 开发 / 后端开发 / PHP教程

PHP箭头函数

浏览:478
PHP教程
PHP教程
类型:后端开发

PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术,如数据库操作、表单处理、会话管理等。通过学习PHP教程,您可以掌握如何使用PHP构建动态网页、开发Web应用程序,并了解如何与数据库进行交互、处理用户输入以及实现用户认证和授权等功能。

一、概念

箭头函数(Arrow functions)是PHP 7.4引入的一种新语法,它提供了一种更简洁的匿名函数写法。与传统的匿名函数不同,箭头函数具有自动绑定父作用域变量的特性。箭头函数的基本语法为:fn (argument_list) => expr,其中 argument_list 是参数列表,expr 是函数体表达式。

二、箭头函数语法

1、箭头函数自动捕捉变量的值

当表达式中使用的变量是在父作用域中定义的,它将被隐式地按值捕获。在下面的例子中,函数 $fn1 和 $fn2 的行为是一样的。

<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
// 相当于通过 value 使用 $y:
$fn2 = function ($x) use ($y) {
return $x + $y;
};
var_export($fn1(3));
?>

以上示例会输出:

4

在箭头函数嵌套的情况下同样有效。

2、自动捕捉变量的值

箭头函数自动捕捉变量的值,即使在嵌套的情况下:

<?php
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// 输出 51
var_export($fn(5)(10));
?>

3、合法的箭头函数

和匿名函数一样,箭头函数语法同样允许标准的函数声明,包括参数和返回类型、缺省值、变量,以及通过引用传递和返回。以下都是箭头函数的有效例子:

<?php
fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;
?>

4、来自外部范围的值不能在箭头函数内修改

箭头函数会自动绑定上下文变量,这相当于对箭头函数内部使用的每一个变量 $x 执行了一个 use($x)。这意味着不可能修改外部作用域的任何值,若要实现对值的修改,可以使用匿名函数来替代。

<?php
$x = 1;
$fn = fn() => $x++; // 不会影响 x 的值
$fn();
var_export($x); // 输出 1
?>

注意: 可以对箭头函数使用 func_num_args(), func_get_arg(), 和 func_get_args() 函数。

广告合作

广告合作

QQ群号:4114653

QQ群号:4114653

温馨提示:

  1. 本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。
  2. 本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。