2016年1月06日 bug库2016-06-16
程序员文章站
2022-03-24 17:28:43
...
1.关于array_search 和 unset
原始代码:
public function appViewUnread($uid, $id) { $userNewRepyKey = Config_CacheKey::USER_QUESTION_NEW_REPLY.$uid; $userNewReply = $this->appGetUserNewReply($uid); $key = array_search($id, $userNewReply); unset($userNewReply[$key]); $this->redis->set($userNewRepyKey, serialize($userNewReply)); }
BUG分析:如果 array_search 查不到结果,则返回false ,那么 unset($userNewReply[false]) 就等同于 unset($userNewRrply[0]) ,此时会将数组第一个元素删除。
更熏后的代码:
public function appViewUnread($uid, $id) { $userNewRepyKey = Config_CacheKey::USER_QUESTION_NEW_REPLY.$uid; $userNewReply = $this->appGetUserNewReply($uid); $key = array_search($id, $userNewReply); if($key != false) { unset($userNewReply[$key]); $this->redis->set($userNewRepyKey, serialize($userNewReply)); } }总结: 对于函数返回值可能出现false的情况,一定要对返回结果进行验证。
以上就介绍了2016年1月06日 bug库2016-06-16,包括了2016年1月06日方面的内容,希望对PHP教程有兴趣的朋友有所帮助。