Bedingte Gleichungen
Bedingte Gleichungen ermöglichen es Ihnen, Vergleichslogik in Formeln für Ligatabellenspalten und Spielerstatistiken einzufügen. Anstatt eines reinen arithmetischen Ausdrucks können Sie eine Formel schreiben, bei der ein Teilausdruck zu 1 (wahr) oder 0 (falsch) basierend auf einem Vergleich ausgewertet wird, und dieses Ergebnis dann in eine größere Berechnung multiplizieren.
Diese Funktion wird durch das Modul für Bedingte Gleichungen bereitgestellt, das im Kern-SportsPress-Plugin unter includes/sportspress/modules/sportspress-conditional-equations.php gebündelt ist.
Vergleichsoperatoren
Wenn das Modul für Bedingte Gleichungen aktiv ist, werden folgende Operatoren zur Gleichungserstellerpalette unter Operatoren hinzugefügt:
Schaltfläche | Bedeutung |
| Größer als |
| Kleiner als |
| Gleich |
| Ungleich |
| Größer als oder gleich |
| Kleiner als oder gleich |
Diese Operatoren sind im Gleichungsersteller für Tabellenspalten und Spielerstatistiken verfügbar.
Wie die Auswertung funktioniert
Ein bedingter Teilausdruck in Klammern ergibt entweder 1 (die Bedingung ist wahr) oder 0 (die Bedingung ist falsch).
Das allgemeine Muster ist:
( linker_operand operator rechter_operand ) * wert_wenn_wahr
Da eine wahre Bedingung 1 zurückgibt und eine falsche Bedingung 0, wirkt die Multiplikation mit der Bedingung als Ein/Dann-Schaltung: Der Wert ist eingeschlossen, wenn die Bedingung wahr ist, und wird auf null gesetzt, wenn sie falsch ist.
Um eine Wenn/Dann/Sonst-Struktur auszudrücken, kombinieren Sie zwei bedingte Ausdrücke:
( bedingung ) * wert_wenn_wahr + ( negierte_bedingung ) * wert_wenn_falsch
Oder einfacher, da die beiden Zweige sich gegenseitig ausschließen:
( bedingung ) * wert_wenn_wahr + ( 1 - ( bedingung ) ) * wert_wenn_falsch
Beispiele
Einen Wert auf ein Maximum begrenzen
Um maximal 3 Punkte für einen Sieg zu vergeben, aber zu verhindern, dass eine Tordifferenz über 10 extra hinzufügt:
$win * 3 + ( ($goalsfor - $goalsagainst) > 10 ) * 0
Ein einfacheres Begrenzungsbeispiel – Tordifferenz auf maximal 10 begrenzen:
( ($goalsfor - $goalsagainst) > 10 ) * 10 + ( ($goalsfor - $goalsagainst) <= 10 ) * ($goalsfor - $goalsagainst)
Wenn $goalsfor - $goalsagainst größer als 10 ist, gibt der erste Zweig 10 zurück. Wenn es 10 oder weniger ist, gibt der zweite Zweig den tatsächlichen Unterschied zurück.
Handicap-Wertung
Um einen Bonuspunkt hinzuzufügen, wenn Tore für Tore gegen um mehr als 2 übertreffen:
$win * 3 + ( ($goalsfor - $goalsagainst) > 2 ) * 1
Der Teilausdruck ( ($goalsfor - $goalsagainst) > 2 ) ergibt 1, wenn die Bedingung erfüllt ist, und 0 andernfalls. Die Multiplikation mit 1 fügt nur in diesem Fall einen Bonuspunkt hinzu.
Einen Wert bedingt auf null setzen
Um die Tordifferenz nur dann anzuzeigen, wenn sie positiv ist (sonst 0):
( ($goalsfor - $goalsagainst) > 0 ) * ($goalsfor - $goalsagainst)
Verschachtelte Bedingungen
Bedingungen können in größeren Ausdrücken verschachtelt werden. Die Gleichungs-Engine wertet die innersten Klammern zuerst aus. Sie können einen bedingten Ausdruck in äußere Klammern einschließen und ihn mit anderen Operatoren kombinieren.
Zum Beispiel:
( ( $goalsfor > $goalsagainst ) * 3 ) + ( ( $goalsfor == $goalsagainst ) * 1 )
Dies vergibt 3 Punkte, wenn Tore für Tore gegen übertreffen, 1 Punkt, wenn sie gleich sind, und 0 andernfalls.
Wann bedingte Gleichungen gegenüber regulären Gleichungen verwendet werden sollten
Verwenden Sie eine reguläre arithmetische Gleichung, wenn die Berechnung immer dieselbe Formel ist, unabhängig von den Werten – zum Beispiel $win * 3 + $draw * 1.
Verwenden Sie eine bedingte Gleichung, wenn das Ergebnis davon abhängt, in welchem Bereich ein Wert liegt, wenn Sie einen Wert begrenzen oder einen Boden setzen müssen, oder wenn Sie einen Bonus oder eine Strafe einschließen möchten, die nur unter bestimmten Bedingungen gilt.
Verwenden Sie keine bedingten Gleichungen für einfache Sieg/Niederlage/Unentschieden-Punktzuweisungen. Der Standardansatz ist die Verwendung von $win * 3 + $draw * 1 ohne Bedingungen. Reservieren Sie bedingte Ausdrücke für Fälle, in denen der Punktwert oder der angezeigte Wert sich basierend auf der Größe eines Resultats ändert.
Erstellen bedingter Gleichungen im Ersteller
Öffnen Sie den Bearbeitungsbildschirm für eine Tabellenspalte oder Spielerstatistik.
Verwenden Sie im Meta-Feld Gleichung die Zeile Operatoren in der Palette, um auf
(zu klicken und eine Klammergruppe zu öffnen.Fügen Sie die linke Operandenvariable hinzu (klicken Sie zum Beispiel auf ein Resultat-Token wie Tore für).
Klicken Sie auf den Operator
-und eine weitere Variable, um eine Differenz zu bilden.Klicken Sie auf den Vergleichsoperator (zum Beispiel
>für größer als).Klicken Sie auf eine Konstante (zum Beispiel
10).Klicken Sie auf
), um die Klammergruppe zu schließen.Klicken Sie auf
*und dann den Wert, mit dem multipliziert werden soll, wenn die Bedingung wahr ist.Fügen Sie bei Bedarf
+und den Fallback-Ausdruck für den Falsch-Fall hinzu.Klicken Sie auf Veröffentlichen oder Aktualisieren, um zu speichern.
Die gespeicherte Gleichung ist eine durch Leerzeichen getrennte Zeichenfolge wie ( $goalsfor - $goalsagainst > 10 ) * 10. Sie können diese Zeichenfolge bei Bedarf direkt inspizieren oder bearbeiten, indem Sie den Meta-Wert sp_equation lesen.
