Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erklärung des ternären PHP-Operators und if
Syntax des ternären Operators: Bedingung ? Ergebnis 1 : Ergebnis 2 Hinweis: Die Position vor dem Fragezeichen ist die Bedingung für die Beurteilung. Wenn die Bedingung erfüllt ist, ist das Ergebnis 1, und wenn sie nicht erfüllt ist, ist das Ergebnis 2.
Empfohlenes Handbuch: php vollständiges Handbuch zum Selbststudium
Dieser Artikel vergleicht und erklärt den ternären Operator und if...else... im Detail. Ich hoffe, es hilft allen.
Als ich heute meine Arbeit online überarbeitete, stieß ich auf einen Satz, den ich nicht verstehen konnte:
$if_summary = $row['IF_SUMMARY']==2?'是':'否';
Später fand Baidu heraus, dass es sich um den ternären Operator von PHP handelte
Die Bedeutung dieses Satzes entspricht
if($row['IF_SUMMARY']==2){ $if_summary="是"; }else{ $if_summary="否"; }
Die Funktion des ternären Operators stimmt mit der Prozessanweisung „if...else“ überein. Er ist in einer Zeile geschrieben und Der Code ist sehr prägnant und die Ausführungseffizienz ist höher.
Die richtige Verwendung ternärer Operatoren in PHP-Programmen kann Skripte 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.
Zum Beispiel:
$a>$b ? print "a大于b" : print "a小于b";
Tatsächlich kann der ternäre Operator erweitert und verwendet werden, wenn die festgelegte Bedingung wahr ist oder nicht. Versuchen Sie es das folgende Format:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
Wir können deutlich erkennen, dass mehrere Ausführungsanweisungen mithilfe von Zeichenfolgenoperatoren („.“) verbunden werden können, und jede Ausführungsanweisung ist von kleinen spitzen Klammern umgeben, um anzuzeigen, dass es sich um eine unabhängige Anweisung handelt und vollständige Ausführung.
Nach dieser Erweiterung ähnelt seine Funktion eher der Prozessanweisung „if...else“.
Gleichzeitig kann der ternäre Operator auch verschachtelt verwendet werden.
Zum Beispiel, wenn a größer als b ist: wenn a kleiner als c ist, dann ist x=c-a, andernfalls ist x=a-c; andernfalls, wenn a kleiner als b ist: wenn b kleiner ist als c, dann x=c-b Sonst x=b-c:
Der verschachtelte ternäre Operator ist nicht sehr gut lesbar und es kann in Zukunft zu Problemen bei der Codepflege kommen, aber im Vergleich zu „if...“ else" Die Flussanweisung der Klasse ist in der obigen Situation tatsächlich zu prägnant, was ihre Attraktivität ausmacht.$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);
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 kleinen Anführungszeichen weg:
$a>$b ? print "Yes" : ""; $a>$b ? '': print 'No';Es ist zu beachten, dass:
Bei Verwendung des ternären Operators wird empfohlen, die print-Anweisung anstelle der echo-Anweisung zu verwenden.
Achten Sie auf das Verständnis der folgenden Reihe von Anweisungen:
Dies kann nicht wie folgt verstanden werden:$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
Wenn $str gleich $_GET['abc ist '], die Zuweisung ist 'wangjinbo', andernfalls ist der Wert 'wjb';
Weil eins: == zur Beurteilung der Gleichheit verwendet werden sollte; ist wie oben gezeigt: (expr1) ? (expr2): (expr3), offensichtlich kann das obige binäre, ternäre „wangjinbo“ oder „wjb“ allein keinen sinnvollen Ausdruck bilden; Das richtige Verständnis von
ist:$_GET['abc'] ist ein Nullwert (das heißt, ob (false), '', null, 0, undifine in PHP alle dem Booleschen Wert entsprechen Wert falsch). Zu diesem Zeitpunkt wird $str der Wert „wjb“ zugewiesen, andernfalls ist der Wert „wangjinbo“; , der Inhalt selbst $_GET['abc'] ist wahr, die Bedingung ist festgelegt und die str-Zuweisung ist 'wangjinbo', andernfalls ist der Wert 'wjb', wenn es keinen klaren Wert von true gibt, bedeutet true (wahr). Es gibt einen Wert, und falsch (falsch) bedeutet, dass es keinen Wert gibt.1.Ternärer PHP-Operator: schnell oder nicht?
2.
Ein einfacher Vergleich des ternären Operators und des Null-Koaleszenzoperators in PHP 3.Was sind die häufigsten Operatoren in PHP
Verwandte Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des ternären PHP-Operators und if. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!