バグが発生したコード
閲覧数:822
投稿日: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;