我的数组有点问题。这是代码:
$attributes = array($_SESSION['item_01'] , $_SESSION['item_02'] , $this->item_03 , $this->item_04);
foreach($attributes as $attribute) {
unset($attribute);
}
此代码位于类中,$this->item_03
和item_04
是类变量。
所以,它不起作用,但当我通过self(unset($_SESSION['item_01)
等)取消设置每个数组元素时,它可以工作。
答案 0 :(得分:1)
您需要按键取消设置,而不是按值设置。
$attributes = array($_SESSION['item_01'] , $_SESSION['item_02'] , $this->item_03 , $this->item_04);
foreach($attributes as $key => $attribute) {
unset($attributes[$key]);
}
如果您希望清除会话对象:
foreach($attributes as $key => $attribute) {
if(array_key_exists($key, $_SESSION) {
unset($_SESSION[$key]);
$this->{$key} = null;// this or next line
unset($this->{$key};
}
}
在php中,它足以“清除”对项目的引用。
因此,如果您希望释放内存,只需将值设置为null。
$this->item_01 = null;
$this->item_02 = null;
然后如果没有其它引用,则将释放内存。
如果您希望获得更全面的答案,则需要显示更多代码。