取消变量

时间:2010-11-08 19:20:36

标签: php

我在这里有一些代码,如下所示:

if (isset($_SESSION['addToCart'])) {
    foreach ($_SESSION["addToCart"] as &$value){
        if ($value['titel'] == $titel){ 
            $value['aantal'] = $aantal;
            if($value['aantal'] == 0){
                unset($value);
            }
        }
    }
}

所以当'aantal'= 0时,我想要删除该记录,但它不会只返回结果而'aantal'为0而不是从会话中删除的记录。 谁知道我做错了什么?

3 个答案:

答案 0 :(得分:1)

根据PHP文档(http://php.net/manual/en/function.unset.php),通过引用传递的变量仅在本地上下文中销毁。试试$value = null;

答案 1 :(得分:0)

你的问题可能源于$ value是一个值变量,$ _SESSION [“addToCarT”] [current_index]的副本。您应该将$ _SESSION [“addToCart”] [current_index]设置为null或取消设置,而不是在有限范围内的副本变量。

答案 2 :(得分:0)

manual:“当您取消设置引用时,您只需断开变量名称和变量内容之间的绑定。这并不意味着变量内容将被销毁。”

你想做这样的事情:

foreach ($_SESSION['addToCart'] as $key => &$value) {
   if ($value['aantal'] == 0) {
      unset($_SESSION['addToCart'][$key]);
   }
}

将其视为文件系统的符号链接。当您销毁符号链接时,它不会销毁它链接到的文件。