PHPを7.3.4にしたところ、TCPDF6が同じようなワーニングをたくさん吐いていることに気づきました。
こんなやつ。
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /******/******/htdocs/common/tcpdf6/tcpdf.php on line 17561
switch文で使われているcontinueは、breakと同等ですよ。もしかしてcontinue 2のつもりだった?みたいな感じ。
ソースを確認してみる
さっそくTCPDFのソースを見てみると、whileのループ文の中で、switch文を使って条件分岐している。そこで特定条件に合致したとき、while文のループをcontinueしたいようだ。
でも、switch文内でのcontinueは、breakと同じような動きをするので、意図した動きじゃないと思うよ!って警告を出してくれているんですね。きっと。
どう直したらいい?
tcpdf.phpの該当行では、continueをcontinue 2にすることで、おそらく意図した動きになると思われます。もしくは、breakにしても、結果的には同じ動きになりそうですが。
ちなみに、continue 2というのは、switch文のもうひとつ上、whileに対してcontinueする(2段階上位の処理に対してcontinueする)という意味です。
余談ですが、このとき初めて、switch文でcontinueできることを知りました。breakと同じ動きをするとは、驚きです!
初稿:2019年4月27日
コメント