Heim >Backend-Entwicklung >PHP-Tutorial >2016年1月06日 bug库2016-06-16

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-28 08:30:081261Durchsuche

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教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn