首页 > 解决方案 > 将匿名函数传递给多个函数

问题描述

我有一个函数,我想将它作为参数传递给多个函数。有没有办法在一个“行”中使用匿名函数来做到这一点。

这是没有匿名函数的样子:

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不重写作为参数的函数的情况下执行相同的操作?

标签: php

解决方案


虽然通常将内联定义为某个函数的参数,但匿名函数只是一个可以像其他任何函数一样使用的值。(准确地说,它是一个Closure对象。)

因此,您可以将回调分配给一个变量,并将该变量传递给您喜欢的任何地方:

$noop = function ( $input ) {
        return $input;
};
add_filter( 'filter_one', $noop );
add_filter( 'filter_two', $noop );

推荐阅读