PHP
エラー「Fatal error Cannot break/continue 1 level 」
上記のエラーの意味は、「break」または、「continue」が正しくないよという意味です。
解決方法は、主に下記のサイトを見ましたが、ダメでした。
http://phpterm.e1blue.net/php/status/106
一応書いてある事をコピペ。。。
■エラー原因例1
・ループしていないところで、breakを記述
・ループしていない箇所で、breakを記述してはいけない
・ループを実施していない箇所で、「現在の構造」を抜けても他に行くところはないため(breakしてもどこへも行けない)
・抜け出すためのループを必要としているのに、どこにも見つからない結果となり、エラーとなる
■対応例1
・ループしていない箇所での「break記述」を削除
■まとめ
・if文の中で「break」を書いてはいけない
・「条件分岐」と「ループ」は異なるため
・但し、「ループ」の中で「条件分岐」している際は、この限りではない
・例:for文の中でif文
上記のようなことはクリアしていたのでわかりませんでした。
んで、自分で解決しました!!!
例:
以下、a.php
$a=array('1','2','3','4')
foreach($a as $b){
if($b<3){
require('b.php');
}
}
b.php以下
$c=5;
$d=6;
if($c>5){
echo '$cは5より上';
}elseif($c<5){
echo '$cは5より下';
}else{
echo '$cは5';
continue;
}
if($d>6{
echo '$dは6より大きい';
}elseif($d<6){
echo '$dは6より小さい'
}else{
echo '$dは6';
}
上記のような、requireでcontinueを使用すると、エラーが発生してましたので、これを、a.phpの方に、continueの部分までを入れると治りました!!
a.php
$a=array('1','2','3','4')
foreach($a as $b){
if($b<3){
$c=5;
if($c>5){
echo '$cは5より上';
}elseif($c<5){
echo '$cは5より下';
}else{
echo '$cは5';
continue;
}
require('b.php');
}
}
b.php
$d=6;
if($d>6{
echo '$dは6より大きい';
}elseif($d<6){
echo '$dは6より小さい'
}else{
echo '$dは6';
}
まあ、この処理、$dには必ず届かないんだけどね笑