闭包在js中可以有静态变量的作用,php呢
1个回答
展开全部
作用域仅在函数内有效, 你返回的闭包是两个不同的函数, 所以static $object指向的变量其实是不一样的. 要达到你的预期, 应当这样改写函数:
function test($global)
{
static $object;
return function ($param) use (&$object, $global) {
if (is_null($object)) {
$object = new stdClass();
}
return $object;
};
}
$global = '';
$closure = test($global);
$firstCall = $closure(1);
$closure1 = test($global);
$secondCall = $closure1(2);
var_dump($firstCall);
echo '<hr>';
var_dump($secondCall);
详细你可以去后盾人看看,这些都是后盾人里面的,哪里有详细的视频教学都是高质量,我自己就是在里面学的。
function test($global)
{
static $object;
return function ($param) use (&$object, $global) {
if (is_null($object)) {
$object = new stdClass();
}
return $object;
};
}
$global = '';
$closure = test($global);
$firstCall = $closure(1);
$closure1 = test($global);
$secondCall = $closure1(2);
var_dump($firstCall);
echo '<hr>';
var_dump($secondCall);
详细你可以去后盾人看看,这些都是后盾人里面的,哪里有详细的视频教学都是高质量,我自己就是在里面学的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询