PHP基础知识之————匿名函数(Anonymous functions)

简介:     匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

 

  匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

创建闭包

Example #1 匿名函数变量赋值示例(http://laravelacademy.org/post/4341.html)

<?php
$fun = function($name){
    printf("Hello %s\r\n",$name);
};
echo $fun('Tinywan');
echo $fun('Github');

打印结果:

Tinywan
Github

闭包和普通的PHP函数很像:常用的句法相同,也接受参数,而且能返回值。不过闭包没有函数名。

注:我们之所以能调用$greet变量,是因为这个变量的值是一个闭包,而且闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invoke方法。

  我们通常把PHP闭包当做函数会方法的回调使用,事实上,很多PHP函数都会用到闭包,比如array_map和preg_replace_callback,这是使用PHP匿名函数的绝佳时机。记住,闭包和其他值一样,可以作为参数传入其他PHP函数:

$numberPlusOne = array_map(function ($number) {
    return $number +=1;
}, [1, 2, 3]);
print_r($numberPlusOne);

 

function demo1(){
    function a(){
        echo 'a Function'."\r\n";
    }
     function b(){
        echo 'b Function';
    }
}
//a() 这样是不可以的,直接报错
demo1(); //demo()1调用了,a()函数就可以调用了, a();

在函数内部定义一个匿名函数,同时使用匿名函数,(这可不是闭包哦!!)

 

function funDemo(){
    $demo = function($str){
        echo $str;
    };
    //调用匿名函数,在这里调用是OK的!
    $demo('Tinywan');
}
funDemo(); //OK!
$demo('Github'); //尝试调用匿名函数,发生错误!

错误信息:

Fatal error: Uncaught Error: Function name must be a string in E:\wamp64\www\php-net\function\Example#2.php on line 32
Error: Function name must be a string in E:\wamp64\www\php-net\function\Example#2.php on line 32

 

 

 

function funDemo(){
    $str1 = 100; //外部函数变量
    $str2 = 200;
    //闭包可以从父作用域中继承变量。 任何此类变量都应该用 use 语言结构传递进去。
    $demo = function() use ($str1,$st){
        echo $str1."\r\n";
        echo $str2;
    };
    $demo("Tinywan");
}
funDemo(); //OK!

打印结果:100 200

 

 

 

 

 

 

目录
相关文章
|
28天前
|
设计模式 数据处理 PHP
探索PHP中的匿名函数与闭包
【8月更文挑战第3天】本文将深入探讨PHP中匿名函数的概念、用法及其在实际应用中的便捷性。通过代码示例,我们将了解如何声明和运用匿名函数,以及闭包如何在其上下文中捕获变量。文章旨在为读者提供一种灵活的编程工具,以简化代码并增强其可读性和可维护性。
|
3月前
|
中间件 PHP
深入理解PHP中的闭包和匿名函数
【6月更文挑战第8天】本文将深入探讨PHP中的闭包和匿名函数,通过实例演示它们的用法和优势。我们将了解闭包的概念、匿名函数的定义以及它们在PHP中的应用。同时,我们还将讨论闭包和匿名函数在实际开发中的一些常见用途。
|
3月前
|
机器学习/深度学习 PHP 开发者
深入探讨PHP中的闭包与匿名函数
在现代PHP开发中,闭包与匿名函数已经成为日常编程的利器。本文将通过详细解说和实例演示,帮助开发者深入理解并有效应用这些功能,从而提升代码的灵活性和可维护性。
8 0
|
4月前
|
缓存 中间件 PHP
探索PHP中的闭包和匿名函数
【5月更文挑战第31天】在PHP的世界中,闭包和匿名函数是两个强大而灵活的特性,它们为开发者提供了一种独特的方式去处理数据、封装逻辑以及实现复杂的功能。本文将深入探讨这两个概念的定义、用法以及在实际开发中的应用示例,帮助读者更好地理解和运用这些高级特性。
|
12月前
|
PHP
PHP 匿名函数
PHP 匿名函数
29 0
PHP的匿名函数和回调函数是什么关系?底层原理是什么?
PHP的匿名函数和回调函数是什么关系?底层原理是什么?
|
存储 PHP
PHP的匿名函数是干什么的?底层原理是什么?
PHP的匿名函数是干什么的?底层原理是什么?
|
存储 PHP
PHP匿名函数与匿名类详解
引用官方的一句话:匿名函数(Anonymous functions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。
91 0
|
JavaScript PHP 前端开发
php的匿名函数和闭包函数
php的匿名函数和闭包函数 tags: 匿名函数 闭包函数 php闭包函数 php匿名函数 function use 引言:匿名函数和闭包函数都不是特别高深的知识,但是很多刚入门的朋友却总是很困惑,因为大家习惯上写了函数就是用来调用的,匿名函数和闭包函数做什么用的? 匿名函数 php官方解释如下: 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。
1093 0
|
3天前
|
存储 SQL 关系型数据库
PHP与MySQL交互的奥秘
【8月更文挑战第29天】在编程的世界里,PHP和MySQL就像是一对默契的舞伴,共同演绎着数据的交响曲。本文将带你探索它们之间的互动,从连接数据库到执行查询,再到处理结果,每一步都充满了节奏与和谐。我们将一起走进这段代码的旅程,感受数据流动的魅力。
下一篇
云函数