今天在使用session时发现一个问题,设置session变量名为6,值为true,每次设置完后输出结果正确,刷新之后再次调用该session则为null: 测试代码如下:

$session = Yii::$app->session;
if($session->get(6)){
echo ‘获取到session’.$session->get(6);
}else{
$session->set(6,true);
echo ‘设置session’.$session->get(6);
}

执行结果永远是else中的,很明显出现错误,在百度上查询很久,没有遇上相同的问题,快放弃的时候,试了一下设置字符串’6’,还是不行,最后用’a6’却成功了,想了一下,才发现,在php中设置变量名是不能以数字开头的,session的变量名他也是变量啊,不能拿窝头不当干粮啊,所以session设置变量时不能以数字开头

$session = Yii::$app->session;
if($session->get(‘a6’)){
echo ‘获取到session’.$session->get(‘a6’);
}else{
$session->set(‘a6’,true);
echo ‘设置session’.$session->get(‘a6’);
}