下面函数运行时,$show无法正确访问到外部变量$city
function myInfo ($name){
$city = '郑州';
$show = function ($userName){
return '我住在' . $city . '我叫 ' . $userName;
} ;
return $show ($name);
}
echo myInfo ('刘德华');
结果:我住在我叫刘德华
当函数内部匿名函数访问外面变量时可以在function()后使用use($city)关键字,就可以正常获取了
function myInfo ($name){
$city = '郑州';
$shows = function($userName) use($city){
return '我住在'.$city.'我叫'.$userName;
} ;
return $shows($name);
}
echo myInfo('刘德华');
结果:我住在郑州我叫刘德华