Rumah > pembangunan bahagian belakang > tutorial php > 2016年1月06日 bug库2016-06-16

2016年1月06日 bug库2016-06-16

WBOY
Lepaskan: 2016-07-28 08:30:08
asal
1237 orang telah melayarinya

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));
     }
Salin selepas log masuk

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));
        }

    }
Salin selepas log masuk
总结: 对于函数返回值可能出现false的情况,一定要对返回结果进行验证。

以上就介绍了2016年1月06日 bug库2016-06-16,包括了2016年1月06日方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan