php - 将匿名函数传递给多个函数
问题描述
我有一个函数,我想将它作为参数传递给多个函数。有没有办法在一个“行”中使用匿名函数来做到这一点。
这是没有匿名函数的样子:
function my_function( $input ) {
return $input;
}
add_filter( 'filter_one', 'my_function' );
add_filter( 'filter_two', 'my_function' );
以下是使用匿名设置调用add_filter
一次的样子:
add_filter( 'filter_one', function ( $input ) {
return $input;
});
PHP 中是否存在语法可以在filter_two
不重写作为参数的函数的情况下执行相同的操作?
解决方案
虽然通常将内联定义为某个函数的参数,但匿名函数只是一个可以像其他任何函数一样使用的值。(准确地说,它是一个Closure
对象。)
因此,您可以将回调分配给一个变量,并将该变量传递给您喜欢的任何地方:
$noop = function ( $input ) {
return $input;
};
add_filter( 'filter_one', $noop );
add_filter( 'filter_two', $noop );
推荐阅读
- c - 凯撒密码,坚持“验证密钥”
- android - 尝试为我的应用程序创建一个打开 Java 活动的 Android 小部件按钮,发送 URI 数据
- html - 如何在不使用输入标签的情况下停止使用 angular 中的 keyup 键入每个单词?
- graphql - 节点获取时使用 RestDataSource 不会返回数据
- arrays - 如果嵌套数组为空或包含值 mongodb,则匹配嵌套数组
- spring - 接口映射器如何依赖 Inyect
- json - 使用 jq 的条件输出
- postgresql - 插入冲突时增加字段数
- node.js - Puppeteer 搞砸了 PDF 渲染
- python - Python:如何将字符串格式的(utf-8)字节数组对象解码回字符串?