JavaScript中匿名函数和闭包可以说是非常灵活的特性了,它的使用可以帮助快速写出很简洁的代码。其实呢,PHP也有匿名函数和闭包,用法如下:
1.匿名函数
# 声明一个函数
$test_closure1 = function($arg1, $arg2) {
return $arg1 . 'hello world!';
}
# 声明一个函数,并将外部变量传入函数
$global_param = 'martin';
$test_closure2 = function($arg1, $arg2) use($global_param){
return $arg1 . 'hello world!' . $global_param;
}
# 调用
call_user_func_array($test_closure1, ['您好', '大家好']);
call_user_func_array($test_closure2, ['您好', '大家好']);
2.闭包
//例子1:在函数里定义一个匿名函数,并且调用它
function test1() {
$func = function( $str ) {
echo $str;
};
$func( 'hello world! );
}
//例子2:在函数中把匿名函数返回,并且调用它
function test2() {
$func = function( $str ) {
echo $str;
};
return $func;
}
# 调用
test1();
$test2_func = test2();
$test2_func('hello world');
php的匿名函数和闭包还不像JavaScript的匿名函数闭包那么灵活好用,但有时候也是可以帮助你解决一些特殊的场景的,期待它以后会更加好用。