Zend framework 尽管if-else和switch-case条件不允许执行销毁zend会话的代码,但仍会执行该代码

Zend framework 尽管if-else和switch-case条件不允许执行销毁zend会话的代码,但仍会执行该代码,zend-framework,session,Zend Framework,Session,当我使用$getId=1作为静态值时,其工作正常,但如果我使用$this->getRequest()->getParam('id')作为其值,该值也是1,尽管在这两种情况下都处于else条件,但它会取消会话(在if条件下编写的代码)。这是怎么可能的,销毁会话的代码是在if条件下编写的。我试过很多东西,但哪儿也做不到。任何建议都会大有帮助。我试过开关盒,在数组和if-else中。试试这个 $getId = $this->getRequest()->getParam('id'); //

当我使用$getId=1作为静态值时,其工作正常,但如果我使用$this->getRequest()->getParam('id')作为其值,该值也是1,尽管在这两种情况下都处于else条件,但它会取消会话(在if条件下编写的代码)。这是怎么可能的,销毁会话的代码是在if条件下编写的。我试过很多东西,但哪儿也做不到。任何建议都会大有帮助。我试过开关盒,在数组和if-else中。

试试这个

$getId = $this->getRequest()->getParam('id'); // 1 is coming from url
$id_from_cart = 1; 

if($getId != $id_from_cart) {    
    echo "unset session";    
    Zend_Session::namespaceUnset('cart'); 
} else {  
    echo "dont unset"; 
}

请发布完整的控制器操作公共函数信息操作(){$this->view->restaurant_id=$this->getRequest()->getParam('id');$id_from_cart=Helper_common::getRestaurantIdFromCart();如果(!empty($emptyObject)&($this->view->restaurant_id!=$id_from_cart)){Zend_会话::namespaceUnset('cart')}@arnerie我刚刚使用ajax执行了相同的代码,它正在工作$此->getRequest()->getParam('id')正在使用ajax,但不在页面加载上@arnerie您的if语句中“emptyobject”的含义是什么?$cart=new Zend_Session_名称空间(“cart”);$params=$this->getRequest()->getParams();$emptyObject=(数组)$cart->cart\u项目;这只是变量,我已经将对象转换为数组并存储在其中。抱歉,我在之前的评论@ArneRie中忘了提到该代码
$getId = (int) $this->getRequest()->getParam('id');