php代码 常见bug,记一次PHP代码中的BUG,求大神解疑

环境:centos + nginx + php5.3n + mysql5.6.17

框架:CI

出错的代码如下:

session_start();

$_SESSION['os'] = 'ios';

$_SESSION['ver'] = '4.0';

$_SESSION['channel'] = '360';

$_SESSION['user_id'] = '20772004';

$mongo_data = array(

'table' => 'channel_source_log',

'user_id' => $_SESSION['user_id'],

'channel' => $_SESSION['channel'],

'ver' => $_SESSION['ver'],

'os' => $_SESSION['os'],

'create_time' => time(),

'operation' => 1,

);

//保存到mongodb

set_mongo_data($mongo_data);

var_dump($_SESSION);

最后的结果出乎意料,打印出来的$_SESSION为整型,值为上面数组中的create_time的值。也就是说整个$_SESSION不再是一个数组,而变成了类似1427846399这样的结果。

我的处理方法是把$_SESSION中的项全部赋值给一个变量,然后在$mongo_data中赋值时直接使用变量,结果是正确的,如下:

session_start();

$_SESSION['os'] = 'ios';

$_SESSION['ver'] = '4.0';

$_SESSION['channel'] = '360';

$_SESSION['user_id'] = '20772004';

//此处先赋值给变量再使用

$user_id = $_SESSION['user_id'];

$ver = $_SESSION['ver'];

$os = $_SESSION['os'];

$channel = $_SESSION['channel'];

$mongo_data = array(

'table' => 'channel_source_log',

'user_id' => $user_id,

'channel' => $channel,

'ver' => $ver,

'os' => $os,

'create_time' => time(),

'operation' => 1,

);

//保存到mongodb

set_mongo_data($mongo_data);

var_dump($_SESSION);

把第一段单摘出来是没有问题的,只有在项目中会出错。大家知道这可能是什么原因造成的吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值