php中怎样销毁一个静态变量?

function testStatic(){
    unset($arr);
    static $arr=array();
    array_push($arr, 1,2,3);
    var_dump($arr);
}
testStatic();        
//array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
testStatic();
//array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(1) [4]=> int(2) [5]=> int(3) }

第二次执行testStatic()时,使用unset无法正确销毁$arr ; 请问怎样才能彻底销毁static变量呢?

阅读 7.8k
2 个回答

文档

如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。

From:http://php.net/manual/zh/func...

新手上路,请多包涵

使用超全局变量,调用完后销毁。例
function test(){
$GLOBALS['test'] = [];

/***/

}
test();
$GLOBALS['test'] = [];

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题