PHP匿名函数和use子句用法

输出 hello everyone

function test()
{
    $param2 = 'every';
    // 返回一个匿名函数
    return function ($param1) use ($param2) {
        // use子句 让匿名函数使用其作用域的变量
        $param2 .= 'one';
        print $param1 . ' ' . $param2;
    };
}
$anonymous_func = test();
$anonymous_func('hello');



下面的方式 输出hello everybody

$param2中多了一个引用

1
2
3
4
5
6
7
8
9
10
11
12
function test()
{
  $param2 = 'everyone';
  $func = function ($param1) use (&$param2) {
    // use子句 让匿名函数使用其父作用域的变量
    print $param1 . ' ' . $param2;
  };
  $param2 = 'everybody';
  return $func;
}
$anonymous_func = test();
$anonymous_func('hello');

发表评论

电子邮件地址不会被公开。 必填项已用*标注