匿名函数(anonymous functions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。
匿名函数目前是通过 closure 类来实现的。
匿名函数示例(推荐学习:php编程从入门到精通)
<?phpecho preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]);}, 'hello-world');// 输出 helloworld?>
闭包函数也可以作为变量的值来使用。php 会自动把此种表达式转换成内置类 closure 的对象实例。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号:
匿名函数变量赋值示例
<?php$greet = function($name){ printf("hello %s\r\n", $name);};$greet('world');$greet('php');?>
闭包可以从父作用域中继承变量。 任何此类变量都应该用 use 语言结构传递进去。 php 7.1 起,不能传入此类变量: superglobals、 $this 或者和参数重名。
以上就是php为什么需要匿名函数的详细内容。