Php Yii未设置会话

Php Yii未设置会话,php,session,yii,Php,Session,Yii,我在yii中有一个会话变量,它对应于特定的用户状态 Yii::app()->user->setState('mycustomvar', 550); 这样我就可以得到这个变量 Yii::app()->user->mycustomvar 如何仅取消设置该变量 我有这样的解决办法 Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar'); 这

我在yii中有一个
会话变量
,它对应于特定的用户状态

Yii::app()->user->setState('mycustomvar', 550);
这样我就可以得到这个变量

Yii::app()->user->mycustomvar
如何
仅取消设置该变量

我有这样的解决办法

Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar');
这样做对吗

Yii::app()->user->setState('mycustomvar', null);
或者设置变量时使用的任何其他初始/默认值

看。无论何时将变量设置为默认值(
null
,除非明确设置为其他值),它都将从会话中删除

编辑:

顺便说一句,你也可以通过神奇的方法设置它,即:

Yii::app()->user->mycustomvar = 550;

我终于找到了一个解决方案

Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar');

无法像这样设置值Yii::app()->user->mycustomvar=550@LifeHacker,对不起,我不太清楚。设置属性后,可以像这样设置属性。因此,必须始终使用
setState
执行初始设置。但是,例如,您可以像这样取消设置属性:
Yii::app()->user->mycustomvar=null
或者以相同的方式将其设置为另一个值。Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix().“mycustomvar”);我像这样删除了它,但这是正确的方法吗?将状态设置为null会做完全相同的事情