返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP8的匿名函数-PHP8知识详解
  • 947
分享到

PHP8的匿名函数-PHP8知识详解

phpPHP开发PHP教程 2023-09-13 16:09:37 947人浏览 八月长安
摘要

php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点: 创建匿名函数,语法格式如下: $fn = func

php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点:

Image

创建匿名函数,语法格式如下:

$fn = function() {      // 匿名函数的代码  };

使用function关键字创建一个匿名函数。下面是一个示例:

以上代码在php8中输出的结果为:

7

在上述示例中,我们向匿名函数传递了值 $arg1 = 3 和 $arg2 = 4,并输出结果为 7。请根据您的需求修改参数的值。

匿名函数可以作为变量赋值给其他变量,也可以作为参数传递给其他函数或方法。示例代码:

";// 将匿名函数作为参数传递给其他函数或方法function operate($a, $b, $func) {    return $func($a, $b);}$result = operate(5, 2, function($x, $y) {    return $x * $y;});echo $result; // 输出 10?>

在PHP8中运行的结果为:

710

在上面的示例中,我们首先将匿名函数赋值给变量 $myFunction,然后使用该变量调用匿名函数并将结果存储在 $result 变量中。

接下来,我们定义了一个 operate() 函数,它接受三个参数:两个操作数 $a 和 $b,以及一个匿名函数 $func。在 operate() 函数内部,我们通过调用 $func($a, $b) 来执行传递进来的匿名函数,并返回其结果。

最后,我们使用了另一个匿名函数作为参数传递给 operate() 函数,并对数字进行相乘操作,将结果输出。

匿名函数可以访问其作用域内的变量,这些变量被称为闭包变量(Closure Variables)。在匿名函数内部,可以使用use关键字来引用外部变量。

以上代码在PHP8中,输出的结果为:

php

匿名函数也可以返回值,就像普通函数一样。可以在匿名函数内部使用return语句来返回值。示范代码:

以上代码在PHP8中的运行结果为:

php

匿名函数可以作为回调函数使用,例如在数组排序、异步操作等场景中。可以使用callable类型来指定匿名函数作为回调函数。示范代码:

在PHP8中运行的结果为:

Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 6 [4] => 8 )

在这个例子中,我们使用了usort函数对$numbers数组进行排序。第二个参数是一个匿名函数,它接受两个参数$a和$b,并返回一个整数值来指定元素之间的比较关系。通过使用匿名函数作为回调函数,我们可以根据自己的逻辑来定义排序规则。

请注意,在使用匿名函数作为回调函数时,可以直接将匿名函数写在函数调用的参数列表中,而不需要定义一个独立的函数体。这样可以使代码更加简洁和易读。

匿名函数也可以使用闭包绑定(Closure Binding),即将匿名函数绑定到特定的对象或类。通过使用bind方法,可以将匿名函数绑定到特定的对象上。

示范代码:

message;        };        $boundFunc = $func->bindTo($this, 'MyClass');        $boundFunc();    }}$obj = new MyClass();$obj->sayHello();?>

以上代码在PHP8中运行结果为‘:

Hello

在上述示例中,我们创建了一个名为MyClass的类,该类具有一个私有属性message和一个公共方法sayHello。

在sayHello方法内部,我们定义了一个匿名函数$func,它尝试访问$this->message。然后,我们使用bindTo方法将匿名函数绑定到当前对象$this上,并指定绑定到MyClass类。

最后,我们调用绑定后的函数$boundFunc(),这样就可以在匿名函数中成功访问到$this->message的值。

请注意,这里的关键是使用bindTo方法将匿名函数与特定的对象或类进行绑定。这样做的好处是,匿名函数仍然保持其原始定义中访问外部作用域变量的能力,同时又能够正确地访问绑定的对象或类的成员。

匿名函数还可以使用闭包模拟(Closure Simulation),即创建一个模拟闭包来访问外部变量。这在使用旧版本的PHP时非常有用,因为匿名函数在旧版本中不可用。通过使用命名函数和命名函数的变量绑定,可以模拟闭包的行为。示范代码:

在php8zhon运行的结果为:

Outer variable value: Hello, world!

静态匿名函数

匿名函数允许被定义为静态化。这样可以防止当前类自动绑定到它们身上,对象在运行时也可能不会被绑定到它们上面。示范代码:

 self::$message;      echo $callback(); // 输出:Hello   }}$obj = new MyClass();$obj->testCallback();?>

在上面的代码中,我们将匿名函数定义为静态化,并通过static fn() => self::$message创建了一个闭包。该闭包能够访问类内部的私有静态变量$message。在testCallback()方法中,我们调用了该闭包,并输出了结果。

请注意,由于我们使用了静态化的匿名函数,所以无需依赖于对象进行绑定,但仍然可以访问类的成员变量。 

来源地址:https://blog.csdn.net/u010292470/article/details/132529390

--结束END--

本文标题: PHP8的匿名函数-PHP8知识详解

本文链接: https://lsjlt.com/news/406156.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP8的匿名函数-PHP8知识详解
    php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点: 创建匿名函数,语法格式如下: $fn = func...
    99+
    2023-09-13
    php PHP开发 PHP教程
  • PHP8的箭头函数-PHP8知识详解
    php 7.4 引入了箭头函数(Arrow Functions),并在 PHP 8 中得到了进一步改进和扩展。 箭头函数是一种更简洁的匿名函数形式,它们提供了一种更便捷的方式来定义轻量级的、单行的回调函数。 箭头函数的语法如下: fn (参...
    99+
    2023-09-09
    php PHP开发 PHP教程
  • PHP8的数组-PHP8知识详解
    今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组中的数值被称为数组元素。...
    99+
    2023-09-24
    php PHP开发 PHP教程
  • PHP8函数包含文件-PHP8知识详解
    在php中,可以使用以下函数来包含其他文件:include()、include_once()、require()、require_once()。 include(): 包含并运行指定文件中的代码。如果文件不存在或包含过程中出现错误,将发...
    99+
    2023-09-10
    php PHP开发 PHP教程
  • PHP8内置函数中的变量函数-PHP8知识详解
    在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函...
    99+
    2023-09-18
    php PHP开发 PHP教程
  • PHP8的多维数组-PHP8知识详解
    今天分享的是php8的数组中的多维数组,主要内容有:多维数组的概念、创建和输出二维数组、创建和输出三维数组。 多维数组的概念 多维数组是包含一个或多个数组的数组。在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也...
    99+
    2023-10-06
    php PHP开发 PHP教程
  • PHP8的运算符-PHP8知识详解
    运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。 PHP8的运算符有很多,按类型分有一元运算符、二元运算符、三元运算符。 一元运算符只对一个表达式执行操作,只能接受一个值,例如 ...
    99+
    2023-09-16
    PHP开发 php PHP教程 PHP8
  • 在PHP8中遍历数组-PHP8知识详解
    所谓遍历数组就是把数组中的变量值读取出来。遍历数组中的所有元素对程序员来说是经常使用的操作,通过遍历数组可以完成数组元素的查询工作。 这好比你去商场买东西一样,要买什么东西,就去该区域浏览一遍,以便找出适合自己的产品。 以下是遍历数组的两种...
    99+
    2023-09-27
    php PHP开发 PHP教程
  • 在PHP8中统计数组元素个数-PHP8知识详解
    在php8中,统计数组元素的个数,有下面几个函数:使用count()函数统计数组元素个数、使用sizeof()函数统计数组元素个数。还讲到了,使用array_count_values()函数来统计数组中每个元素出现的次数。 1、使用co...
    99+
    2023-09-18
    php PHP开发 PHP教程
  • PHP8的静态变量和方法-PHP8知识详解
    我们在上一课程讲到了public、private、protected这3个关键字,今天我们来讲解static关键字,明天再讲解final关键字。 如果不想通过创建对象来调用变量或方法,则可以将该变量或方法创建为静态变量或方法,也就是在变量或...
    99+
    2023-10-10
    php PHP开发 PHP教程
  • 函数的参数传递和返回值-PHP8知识详解
    本文学习的是《php8知识详解》中的《函数的参数传递和返回值》。主要包括:向函数传递参数值、向函数传递参数引用、函数的返回值。 向函数传递参数值 函数是一段封闭的程序,有时候,程序员需要向函数传递一些数据进行操作。可以接受传入参数的函数...
    99+
    2023-08-31
    php PHP开发 PHP教程
  • PHP8函数:get_debug_type()的用途详解
    PHP8是PHP语言的最新版本。这个版本新增了很多强大的功能和改进,在解释器性能、类型系统和错误处理方面有很多进展。其中一个非常实用的新功能是get_debug_type()函数。它可以方便地获取表达式的类型信息,这个函数的使用非常容易,让...
    99+
    2023-05-17
    函数 PHP get_debug_type()
  • JavaScript匿名函数知识点有哪些
    这篇文章主要介绍了JavaScript匿名函数知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript匿名函数知识点有哪些文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • PHP8函数:str_contains()的新用途
    PHP 8是一款功能更强大的编程语言,它引入了许多新的函数和特性,其中之一就是str_contains()函数。str_contains()函数主要用于检查字符串中是否包含指定的子字符串,它可以用于各种不同的应用程序中,例如搜索引擎、数据分...
    99+
    2023-05-16
    函数 PHP str_contains()
  • C++匿名函数lambda详解
    匿名函数lambda 一、匿名函数的基本语法二、捕获列表2.1、值捕获2.2、引用捕获2.3、隐式捕获2.4、空捕获列表2.5、表达式捕获2.6、泛型 Lambda2.7、可变lambda2....
    99+
    2023-10-23
    c++ linux 开发语言 服务器 算法
  • python中lambda匿名函数详解
    在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数 关键字lambda表示匿名函数 语法 lambda 参数:表达式 先写lambda关...
    99+
    2024-04-02
  • scala匿名函数案例详解
    目录1.匿名函数含义1.1传递匿名函数含义1.2传递匿名函数第一层代码解析3.1 这其实跟 “java”特别像3.2传递匿名函数第二层代码解析补充:scala...
    99+
    2023-03-19
    scala 匿名函数 java scala 匿名函数
  • python函数和python匿名函数lambda详解
    目录1. python函数1.1 函数的作用1.2 函数定义1.3 函数调用1.4 函数的参数1.4.1 参数的传递1.4.2 参数类型1.4.2.1 位置参数(必备参数)1.4.2...
    99+
    2024-04-02
  • PHP8中的数组函数:array_map()的详细应用技巧
    近年来,随着互联网行业的迅速发展,编程语言也在不断地更新换代。PHP作为一种较为流行的编程语言,也在这种趋势下不断发展。PHP8作为最新的版本,更新了其内置函数库,提供了更多实用的函数。本文将介绍PHP8中的数组函数array_map()的...
    99+
    2023-05-18
    PHP 数组函数 array_map()
  • PHP8中的函数:str_contains()的新特性
    随着互联网的快速发展,编程语言也在不断地更新和升级。作为一种常用的编程语言,PHP也经历了无数次的改进和提升。PHP8作为最新版本,不仅引入了全新的特性,还升级了很多功能。其中,函数str_contains()就是PHP8中一个非常有用的新...
    99+
    2023-05-16
    函数 PHP str_contains()
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作