PHP匿名函数

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

变量赋值

闭包函数可以作为变量的值使用,最后需要加分号。

$test = function ($var) {
      echo $var;
};
$test('hello');
$test('world');

回调函数参数

example1:

function myfunction($v)
{
    return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));//1,4,9,16,25

example2:

$test = ['a' => 1, 'b' => 2];
$res = array_map(function ($item) {
        $item = 3;
        return $item;//注意,一定要有return
}, $test);
echo $res;//['a'=>3,'b'=>3]

父作用域继承变量

闭包想要使用父作用域中的变量需要使用use关键字,匿名函数不会自动从父作用域中继承变量。

$var = "hello";
$test = ['apple', 'orange'];
$res = array_map(function ($item) use ($var) {
      $item = $var . ',' . $item;
      return $item;
}, $test);
print_r($test);//["hello,apple","hello,orange"]

use中还可以使用引用变量

$var = 1;
$test = [1, 2, 3];
$res = array_map(function ($item) use (&$var) {
        $var += $item;
        return $item;
}, $test);
echo $var;//7
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 匿名函数可用于动态创建函数,并保存到一个变量中。举个栗子: 等效于: 看上去没什么新奇的地方,别急,继续看。 通过...
    f09037cb27f7阅读 781评论 0 6
  • 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名...
    零一间阅读 375评论 0 2
  • 题目 时间限制:10000ms单点时限:1000ms内存限制:256MB描述给定N个数A1, A2, A3, .....
    心随碧草阅读 346评论 0 0
  • 查看以下代码。 false == 0返回:true这是一个类型转换示例,之前你已经见过。JavaScript 认为...
    向前冲冲的蜗牛阅读 2,103评论 0 1
  • 一树树的繁花 温柔 羞涩轻倚在石墙边 一朵朵的笑脸 俏丽 灿烂绽放在日光下 是来赴那场初夏的盛会么? 还是相约 在...
    njlinda阅读 482评论 0 1