輸出的是hello world
$param1和$param2是閉包變量
function test()
{
$param2 = 'every';
// 返回一個匿名函數
return function ($param1) use ($param2) {
// use子句 讓匿名函數使用其作用域的變量
$param2 .= 'one';
print $param1 . ' ' . $param2;
};
}
$anonymous_func = test();
$anonymous_func('hello');
下面的方式 輸出hello everyone
function test()
{
$param2 = 'everyone';
$func = function ($param1) use ($param2) {
// use子句 讓匿名函數使用其父作用域的變量
print $param1 . ' ' . $param2;
};
$param2 = 'everybody';
return $func;
}
$anonymous_func = test();
$anonymous_func('hello');
下面的方式 輸出hello everybody
$param2中多了一個引用
function test()
{
$param2 = 'everyone';
$func = function ($param1) use (&$param2) {
// use子句 讓匿名函數使用其父作用域的變量
print $param1 . ' ' . $param2;
};
$param2 = 'everybody';
return $func;
}
$anonymous_func = test();
$anonymous_func('hello');