请参阅此代码:http: //codepad.org/s8XnQJPN
function getvalues($delete = false)
{
static $x;
if($delete)
{
echo "array before deleting:\n";
print_r($x);
unset($x);
}
else
{
for($a=0;$a<3;$a++)
{
$x[]=mt_rand(0,133);
}
}
}
getvalues();
getvalues(true); //delete array values
getvalues(true); //this should not output array since it is deleted
Run Code Online (Sandbox Code Playgroud)
输出:
array before deleting:
Array
(
[0] => 79
[1] => 49
[2] => 133
)
array before deleting:
Array
(
[0] => 79
[1] => 49
[2] => 133
)
Run Code Online (Sandbox Code Playgroud)
为什么数组$x在未设置时不会被删除?
如果未设置静态变量,则仅在未设置的函数中销毁该变量.以下对函数的调用(getValues())将在取消设置之前使用该值.
这也提到了unset函数的文档. http://php.net/manual/en/function.unset.php