14 Stimmen

ungewöhnliche ternäre Operation

Ich wurde gebeten, diesen Vorgang der ternären Operatorverwendung durchzuführen:

$test='one';

echo $test == 'one' ? 'one' :  $test == 'two' ? 'two' : 'three';

Der zwei ausgibt (überprüft mit php).

Ich bin mir immer noch nicht sicher, wie das funktionieren soll. Bitte, kann mir jemand die Logik dafür erklären.

1voto

Kamil Szot Punkte 16381

Ternäre Operatoren werden in der Reihenfolge ihres Auftretens ausgeführt, so dass Sie wirklich haben:

echo ($test == 'one' ? 'one' :  $test == 'two') ? 'two' : 'three';

0voto

John Conde Punkte 212467

Verschachtelte ternäre Operationen sind eklig! Die obige Erklärung zeigt, warum.

Das ist im Grunde die Logik:

is $test == 'one'

  if TRUE then echo 'one'

  else is $test == 'two'

      if TRUE then echo 'two'

      else echo three

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X