这个方法之前在测试环境中使用时一切安好,但放上线上后发现经常502,因为只是一个调试模块,不影响线上业务,也没去认真研究。今天想想真是奇怪,就准备拿来研究一下,这篇文章肯定不可能把这个问题说全,因为涉及的其它地方太多我也没办法贴出来,贴点代码吧,算是为这个匪夷所思的问题立个碑。

    PHP代码如下:

//一个方法
public function historycards()
{
    $data = array();

    //取得redis里的数据
    $val_history = array();
    $redisKey = "history_cards";
    $val_history = (array)$this->_Redis->hGetall($redisKey);

    $this->debug($val_history, true);
    $this->debug($data, true);
    $data['history_val'] = $val_history;
    #unset($data['history_val']['history_val']);
    $this->debug($data);
}
     就是一个从redis里获取一个hash键的值,得到一个数组,然后赋值给另一个变量,这时奇怪的问题发生了,另一个变量中这个索引直接成了递归,结果如下图:

    这个方法里确实是调了其它的方法,也检查了调用的相关方法,按理是不可能出现这样的情况,但它真的发生了。做个记录吧。

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!