设置数组是否在关联数组中取消设置其元素?

时间:2013-10-15 21:28:05

标签: php arrays

这可能是一个愚蠢的问题,但只是想知道并且不知道如何搜索它。

代码:

$_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,所以我知道它们不在数组中但是它们是否保存在内存中?

1 个答案:

答案 0 :(得分:0)

他们没有设置,有资格重用。如果您想确定,可以在执行取消设置之前先将引用设置为“null”。

$_SESSION['My_Temp_Array']['hello'] = null;

注意:如果您将PHP作为CGI运行,则无论如何都会在请求后释放内存,因为该过程已终止。

您的里程可能与apache模块非常相似(最迟将在apache子节点终止时释放)或FastCGI(取决于处理的请求数量的配置)。