ミランダ

[PHP] PHP7上でTCPDF6を使うとWarningたくさん!

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日
スポンサーリンク

この記事をシェア

アカウントをフォロー