php匿名函数和闭包

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的匿名函数闭包那么灵活好用,但有时候也是可以帮助你解决一些特殊的场景的,期待它以后会更加好用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 相信很多前端小伙伴在工作和学习中,都会或多或少的接触和了解到匿名函数和闭包。被这俩知识点所困扰,也去网上搜索...
    就那ck阅读 12,975评论 7 21
  • Welcome 目前网络上充斥着大量的陈旧信息,让PHP新手误入歧途,传播着错误的实践和糟糕的代码,这必须得到纠正...
    layjoy阅读 21,775评论 7 118
  • 带刺玫瑰放雅香 多情少女恋情郎 情郎放牧来山寨 少女扬花进绣房 我愿你情私窃语 无猜两小诉衷肠 举头只恨时光短 悻...
    小启明星阅读 1,878评论 1 12
  • 找准失误的原因,对症下药,才能养成良好的学习习惯。同样,改进自己的学习习惯可以有效地调整自己的学习状态。通过对错题...
    尚儒教育阅读 4,328评论 0 0
  • 照片上的这位老人是我八十八岁的父亲,今年春节时外甥女平平抓拍的。 正月初四的下午,我们姐妹正喧闹地打着麻将,父亲坐...
    我是明如月阅读 4,351评论 0 3