ワードプレスでPHP8にアップデートするとWarning: “continue” targeting switch is equivalent to “break”. ワーニングが表示される場合の対処方法をご紹介いたします。


PHPのアップデートで表示されるようになる「Warning: “continue” targeting switch is equivalent to “break”.」の意味

このワーニングはPHP7.3以上で表示されるもので、PHP8にアップデートした場合も出てくる場合がございます。

このエラーの意味はcontinueという処理が、誤って使用されているという意味になります。
例えば下記のようなプログラムの場合、continue; ではforeach文を抜けられず(その下のechoの処理に移ってしまう)、breakと同じ動作になるけど問題ないですか?と警告している事になります。

foreach (****) {
    switch *** {
        case *** == 0 :
            continue;
        default:
            break;
    }
    echo "****";
}

そしてもしforeach文を即座に次のループに移行したならcontinue 2を使用しましょう。と言っています。

foreach (****) {
    switch *** {
        case *** == 0 :
            continue 2;//この場合echo分にはいかず次のループ処理に即座に移行する
        default:
            break;
    }
    echo "****";
}

「Warning: “continue” targeting switch is equivalent to “break”.」の対処方法

この警告をなくすには、警告文にあるファイルの位置にあるconitinueを修正する必要がございます。

Warning: “continue” targeting switch is equivalent to “break”. Did you mean to use “continue 2”? in /home/www/ファイルの位置.php on line 行数

もし、ループ一旦抜ける必要がない場合はbreakに、ループを一旦即座に抜ける必要がある場合はcontinue 2に修正します。
ただ、プログラムがループを抜ける必要があるのかないかを判断するには、プログラムの知識が必要とされ難しい場合があるかと思います。

この場合、該当のプラグイン等をアップデートすることで、PHP7.3以上に出るこういったワーニングをすでに製作者が解消しているかもしれません。こちらもお試しいただけましたら幸いです。

WordPress ワードプレスのエラーの解消・修正のご依頼・ご相談はWPドクターまでお気軽にお送りください