首頁 > 後端開發 > php教程 > 2016年1月06日 bug庫2016-06-16

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

WBOY
發布: 2016-07-28 08:30:08
原創
1237 人瀏覽過

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));
     }
登入後複製

B

B

UG分析:如果array_f到結果,則回傳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教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板