MENU

PHP5から7にしたらFatal error: break not in the loop or switch context

ローカル環境構築のために使用しているMAMPのバージョンを4にしたら、こんなタイトルのようなエラーが出ました。PHP5.xではエラーにならなかったけど、PHP7ではエラーになるようです。

エラーの内容

Fatal error: ‘break’ not in the ‘loop’ or ‘switch’ contextというのは、ループやswitch文以外で break; を使うなという内容のメッセージです。具体的には以下のようなソースコードです。


if (...)
{
  return 10;
  break;
}
else if (...)
{
  return 20;
}

このエラーが出たのはPHPExcelというライブラリを使っていたときに起きました。このような感じで、あまり意味のない break; 文が使われています。break; の部分をコメントアウトしてあげればエラーは消えます。

そもそもこんな記法でプログラムを書いたことがなかったので、なんだか気持ち悪いソースコードだなぁと思いました。少し古くからあるライブラリを使っている方は注意したほうがいいかもしれません。