ホームページ >バックエンド開発 >PHPチュートリアル >2016 年 1 月 6 日 バグ ライブラリ 2016-06-16
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 月 6 日の内容を含む、2016 年 1 月 6 日のバグ ライブラリ 2016-06-16 を紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。