这可能是一个愚蠢的问题,但只是想知道并且不知道如何搜索它。
代码:
$_SESSION['My_Temp_Array'] = array(
'hello' => 'world',
'foo' => array('bar' => 'bar')
);
if (isset($_SESSION['My_Temp_Array'])) {
$hello = $_SESSION['My_Temp_Array']['hello'];
$foo = $_SESSION['My_Temp_Array']['foo'];
//SEE #Q
unset($_SESSION['My_Temp_Array']);
}
#Q:
Does this also unset $_SESSION['My_Temp_Array']['hello'] AND $_SESSION['My_Temp_Array']['foo'] ? Or Do I need to unset them manually?
我知道一旦数组键未设置,我将无法访问这些内部键但是它们是否保留在内存中?那些数组将保存大数据,所以在这个例子中,内存不是问题,但在我的代码中它是。
注意: var_dump在取消设置后给我null,所以我知道它们不在数组中但是它们是否保存在内存中?
答案 0 :(得分:0)
他们没有设置,有资格重用。如果您想确定,可以在执行取消设置之前先将引用设置为“null”。
$_SESSION['My_Temp_Array']['hello'] = null;
注意:如果您将PHP作为CGI运行,则无论如何都会在请求后释放内存,因为该过程已终止。
您的里程可能与apache模块非常相似(最迟将在apache子节点终止时释放)或FastCGI(取决于处理的请求数量的配置)。