Wie stoppe ich eine Regelschleife?

7

Ich verwende das Modul "Bedingte Regeln" . Es gibt einige Bedingungen in der Schleife, aus denen ich ausbrechen muss. Die Regeln zum Stoppen / Beenden der Schleife enthalten jedoch keine Aktion.

Ich habe benutzerdefinierte Regeln ausprobiert, bei denen ich Folgendes ausprobiert habe, aber es funktioniert nicht:

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

Die Unterbrechung funktioniert, wird jedoch mit der folgenden Fehlermeldung angezeigt:

Schwerwiegender PHP-Fehler: 1 Level in kann nicht unterbrochen werden

Weiß jemand, wie man die Schleife stoppt / beendet?

Ahmad
quelle
1
Haben Sie Lösungen dafür gefunden?
Dev
Werfen
Malek Massoudi
Könnten Sie es vielleicht stattdessen auf eine Weile ändern?
Jamie Hollern

Antworten:

2

Installieren Sie bedingte Regeln, damit Sie zwischen "Regelaktionen" "Bedingungen" hinzufügen können. Danach können Sie eine Variable erstellen, die iteriert und diese verwendet, um nach den dritten Elementen anzuhalten.

Rohit Jha
quelle
Können Sie eine Beispielregel (im Exportformat) einfügen, die Ihre Antwort demonstriert?
Pierre.Vriens
0

Sie sollten das Array filtern, bevor Sie es an foreach übergeben. Sie können dies tun, indem Sie eine Regelkomponente implementieren, die zwei Parameter akzeptiert:

  1. Die neue (gefilterte) Liste.
  2. Der Artikel, den Sie in Betracht ziehen.

Platzieren Sie diese Komponente in einer foreach-Schleife. Das wäre wahrscheinlich eine weitere Komponente.

Wenn der Parameter Ihren Kriterien entspricht, hängen Sie ihn an die Liste an. Wenn nicht, nichts tun. Das Ergebnis ist, dass Sie dann Ihre gefilterte Liste haben.

Jetzt können Sie Ihre foreach tun.

Eine andere Möglichkeit besteht darin, eine Regelkomponente in Ihre Schleife einzufügen, die nur ausgeführt wird, wenn einige übergebene Funktionen funktionieren. Grundsätzlich eine while-Schleife.

nvahalik
quelle