Die Funktion des
ternären Operators stimmt mit der Prozessanweisung „if...else“ überein. Er ist in einer Zeile geschrieben, der Code ist sehr prägnant und die Ausführungseffizienz ist höher.
Die richtige Verwendung des ternären -Operators in PHP-Programmen kann das Skript prägnanter und effizienter machen.
Das Codeformat ist wie folgt: (expr1) ? (expr2) : (expr3);
Erklärung: Wenn die Bedingung „expr1“ wahr ist, führen Sie die Anweisung „expr2“ aus ", andernfalls führen Sie " expr3" aus.
Um die gleiche Funktion zu erreichen, müssen Sie bei Verwendung von bedingten Flussanweisungen mehrere Codezeilen schreiben:
if(expr1) { expr2; } else { expr3; }
Es ist ersichtlich, dass die Güte des Ternärs Der oben genannte Operator ist keine Übertreibung. In den meisten Fällen verwenden wir den ternären Operator jedoch nur, wenn der Code relativ einfach ist, das heißt, wenn die Ausführungsanweisung nur aus einem einzigen Satz besteht. Beispiel:
$a>$b ? print "a大于b" : print "a小于b";
Tatsächlich kann der ternäre Operator erweitert werden, wenn die festgelegte Bedingung wahr ist oder nicht, kann die Ausführungsanweisung aus mehr als einem Satz bestehen:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
Wir können deutlich erkennen, dass mehrere Ausführungsanweisungen mit dem String-Operator (".") verbunden werden können. Jede Ausführungsanweisung ist in kleine spitze Klammern eingeschlossen, um anzuzeigen, dass sie unabhängig und vollständig ist Führen Sie die Anweisung aus. Nach dieser Erweiterung ähnelt seine Funktion eher der Prozessanweisung „if...else“.
Gleichzeitig kann der ternäre Operator auch verschachtelt werden. Wenn zum Beispiel a größer als b ist: wenn a kleiner als c ist, dann ist x=c-a, andernfalls ist x=a-c; andernfalls ist a kleiner als b: wenn b kleiner als c ist, dann ist x=c-b, andernfalls ist x=b-c:
$ a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c) ;
Die Lesbarkeit des verschachtelten ternären Operators ist nicht sehr gut und es kann in Zukunft zu Problemen bei der Verwaltung des Codes kommen. Im Vergleich zu Prozessanweisungen wie „if. ..else“, im oben genannten In diesem Fall ist es tatsächlich zu einfach, was seine Attraktivität ausmacht.
Für diejenigen, die gerne faul sind und die Einfachheit des Codes anstreben, sollte die Verwendung des ternären Operators als Ersatz für die if-Prozessanweisung eine ausgezeichnete Wahl sein. Auch wenn im „Ternär“ kein anderes „Element“ als der Bedingungssatz berücksichtigt werden muss, ist die Verwendung des Ternäroperators dennoch prägnanter als die if-Anweisung. Die Syntax der folgenden Anweisungen ist korrekt, sie lassen das zweite oder dritte „Element“ in einer kleinen Anführungszeichenform weg:
$a>$b ? print "Yes" : ""; $a>$b ? '': print 'No';
Es ist zu beachten: Bei Verwendung des ternären Operators wird empfohlen, The zu verwenden Die print-Anweisung ersetzt die echo-Anweisung.
Achten Sie auf das Verständnis der folgenden Reihe von Anweisungen:
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
Dies kann nicht so verstanden werden: Wenn $str gleich $_GET['abc'] ist, ist die Zuweisung 'wangjinbo', andernfalls lautet die Zuweisung 'wjb'; weil eins: == zur Beurteilung der Gleichheit verwendet werden sollte: Die Syntax des ternären Operators ist offensichtlich wie oben gezeigt: (expr1) : (expr3). Das obige binäre, ternäre „wangjinbo“ oder „wjb“ allein kann keinen sinnvollen Ausdruck bilden; das richtige Verständnis von
ist: wenn $_GET['abc'] leer ist (das heißt , ob '' in PHP, null, 0, undifine, alle äquivalent zum booleschen Wert false sind), weisen Sie $str 'wangjinbo' zu, andernfalls weisen Sie es 'wjb' zu >
Allgemein Gemäß den Regeln
anderer<?php $a=1;$b=2;$c=3;$d=4; echo $a<$b?'xx':$a<$c?'yy':$a<$d?'zz':'oo'; ?>
Dann Das Endergebnis ist „xx“ und die nachfolgenden Operationen werden ignoriert. Die ternäre Operation von PHP ist linksassoziativ.
$a<$b => true => 'xx' ==> 结束
Auf den ersten Blick ist klar, dass dies die Operationslogik von PHP ist:
<?php $a=1;$b=2;$c=3;$d=4; echo (($a<$b?'xx':$a<$c)?'yy':$a<$d)?'zz':'oo'; ?>
Dabei handelt es sich um zwei Arten von Konvertierungsprozessen, nämlich 'xx' => true und ' xx' => wahr.
Ich weiß nicht, ob dieser Vorgang schmerzhaft ist, er ist wirklich schwer zu verstehen...$a<$b => true => 'xx' => true => 'yy' => true => 'zz' => 结束
Das obige ist der detaillierte Inhalt vonKombination aus ternären PHP-Operatoren und ihre Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!