バグが発生したコード
閲覧数:462
投稿日:2023-03-16
更新日:2023-03-16
foreach内で一度「true」判定された後、次回以降「false」にする仕組みがないと、foreachの度に「true」「false」判定することができない
※一度「true」判定されるとそれ以降ずっと「true」
コード
//元コード。foreach内で一度true判定されるとそれ以降ずっとtrue foreach($chapterAry as $val): if($userSessionAry['id'] == $val['user_id']): $myPageChapterExist = true; //マイページフラグ endif; if($myPageChapterExist): //一度true判定されるとそれ以降ずっとtrue endif; endforeach; //修正例1。foreach内で一度true判定されても、foreachの度に判定 foreach($chapterAry as $val): $myPageChapterExist = false; if($userSessionAry['id'] == $val['user_id']): $myPageChapterExist = true; //マイページフラグ endif; if($myPageChapterExist): //一度true判定されても、foreachの度に判定 endif; endforeach; //修正例2。foreach内で一度true判定されても、foreachの度に判定 foreach($chapterAry as $val): if($userSessionAry['id'] == $val['user_id']): $myPageChapterExist = true; //マイページフラグ else: $myPageChapterExist = false; //マイページフラグ endif; if($myPageChapterExist): //一度true判定されても、foreachの度に判定 endif; endforeach;