ルールのループを止めるには?


7

私は条件付きルールモジュールを使用していますが、ループの中に抜け出す必要があるいくつかの条件があります。ただし、ループを停止/終了するためのルールにはアクションはありません。

私は次のことを試みたがそれが機能しないカスタムルールを試しました:

function my_module_break_rules_loop() {
  return FALSE;
}
function my_module_break_rules_loop() {
  return 0;
}
function my_module_break_rules_loop() {
  break;
}

ブレークは機能しますが、次のエラーメッセージが表示されます。

PHPの致命的なエラー:1レベルで中断/続行できません

誰でもループを停止/終了する方法を知っていますか?


1
これに対する解決策は見つかりましたか?
Dev

ここを見て、(可能な重複)stackoverflow.com/questions/11988281/...
マレクMassoudi

代わりに、しばらく変更することはできますか?
ジェイミーホラーン2017

回答:


2

「ルールアクション」の間に「条件」を追加できるように、条件付きルールをインストールします。その後、反復する変数を作成し、それを使用して3番目の要素の後に停止することができます。


答えを示すサンプルルール(エクスポート形式)を含めることができますか?
Pierre.Vriens 2017

0

foreachで処理する前に、配列をフィルター処理する必要があります。これを行うには、2つのパラメーターを使用するルールコンポーネントを実装します。

  1. 新しい(フィルターされた)リスト。
  2. 検討中のアイテム。

このコンポーネントをforeachループ内に配置します。それはおそらく別のコンポーネントです。

パラメータが基準を満たしている場合は、リストに追加します。そうでない場合は、何もしません。その結果、フィルターされたリストが作成されます。

これで、foreachを実行できます。

もう1つの可能性は、ループ内に、渡された関数が機能する場合にのみ実行されるルールコンポーネントを配置することです。基本的に、whileループ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.