Verschachtelte ternäre Operatoren in PHP: Ein gelöstes Rätsel
Verschachtelte ternäre Operatoren bieten eine prägnante und leistungsstarke Möglichkeit, Werte in PHP bedingt zuzuweisen. Wenn jedoch mehrere Operatoren verwendet werden, ist die richtige Syntax von entscheidender Bedeutung.
Das Problem
Bedenken Sie den folgenden Code:
$province = 7; $Myprovince = ( ($province == 6) ? "city-1" : ($province == 7) ? "city-2" : ($province == 8) ? "city-3" : ($province == 30) ? "city-4" : "out of borders" );
Trotz der Absicht Wählen Sie eine Stadt basierend auf dem Provinzwert aus. Der Code weist $Myprovince für jeden „city-4“ zu Feld.
Die Lösung
Das Problem liegt im Fehlen von Klammern. Jeder ternäre Operator muss ordnungsgemäß verschachtelt sein, um eine korrekte Auswertung sicherzustellen. Der aktualisierte Code unten behebt das Problem:
$province = 7; $Myprovince = ( ($province == 6) ? "city-1" : (($province == 7) ? "city-2" : (($province == 8) ? "city-3" : (($province == 30) ? "city-4" : "out of borders"))) );
So funktioniert es
Der innerste ternäre Operator wertet die Bedingung aus ($province == 8) und weist „Stadt“ zu -3", wenn wahr, oder fährt mit dem nächsten Operator fort, wenn falsch.
Der mittlere ternäre Operator prüft, ob $province gleich ist 7 und weist „city-2“ zu, wenn wahr, oder fährt mit dem nächsten Operator fort.
Schließlich wertet der äußerste ternäre Operator die Bedingung aus ($province == 6) und weist „city-1“ zu, wenn wahr, oder fährt fort zu den verbleibenden Optionen und weist schließlich „Stadt-4“ zu, wenn $province 30 ist, andernfalls „außerhalb der Grenzen“.
Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte ternäre Operatoren in PHP richtig implementieren, um unerwartete Ergebnisse zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!