5

私はこのような状況に直面しています ((php docs から抽出))

ループに含まれるファイルで continue ステートメントを使用すると、エラーが発生します。例えば:

 // main.php  

 for($x=0;$x<10;$x++)
 { include('recycled.php'); }

 // recycled.php

 if($x==5)
 continue;
 else 
 print $x;

"012346789" no 5 と表示されるはずですが、エラーが発生します。

Cannot break/continue 1 level in etc.

これに対する解決策はありますか??、つまり、この方法で、recliced.php を「処理」する必要があります。continue ステートメントを使用してもこのエラーは発生しません。これは簡単に理解できるサンプル コードであることを覚えておいてください。実際のケースでは、 main.php ファイルのループを継続する方法を見つけてください。.

4

7 に答える 7

8

returnの代わりに使用できます:continuepage2.php

if ($x == 5) {
  return;
}
print $x;

現在のスクリプト ファイルが含まれているか必要な場合、制御は呼び出し元のファイルに戻されます。さらに、現在のスクリプト ファイルがインクルードされている場合は、return に指定された値がインクルード呼び出しの値として返されます。

PHP: 戻る

于 2013-06-07T07:54:49.893 に答える
1

そのようなインクルード ファイルでは機能しない continue を使用する代わりに、代わりにこれを行うことができます。

// page2.php
if($x!=5) {
  // I want this to run
  print $x;
} else {
  // Skip all this (i.e. probably the rest of page2.php)
}
于 2013-06-07T07:50:10.693 に答える
0

これを試して!これはあなたのために働くかもしれません。

// page1.php  

 for($x=0;$x<10;$x++)
 { include('page2.php');

 // page2.php

 if($x==5)
 continue;
 else 
 print $x;
}
于 2013-06-07T07:56:36.643 に答える
0

これもできます

// page1.php  

 for($x=0;$x<10;$x++)
 { include('page2.php'); }

 // page2.php

 if($x==5)
 { } // do nothing and the loop will continue
 else 
 print $x;
于 2013-06-07T07:56:40.843 に答える