Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung des ternären PHP-Operators

Detaillierte Erklärung des ternären PHP-Operators

WBOY
WBOYOriginal
2016-08-08 09:23:25847Durchsuche

Als ich heute meine Arbeit online überarbeitete, stieß ich auf einen Satz, den ich nicht verstehen konnte:
$if_summary = $row['IF_SUMMARY']==2?'Yes':'No';
Ich habe später auf Baidu herausgefunden, dass es sich um den ternären Operator von PHP handelt.
bedeutet dasselbe wie
if($row['IF_SUMMARY']==2){
$if_summary="Yes";
}else {
$if_summary="No";
}
Die Funktion des ternären Operators stimmt mit der Prozessanweisung „if...else“ überein. Sie ist in einer Zeile geschrieben und Der Code ist sehr prägnant und weist eine höhere Ausführungseffizienz auf.
Die richtige Verwendung des ternären Operators 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 dieselbe Funktion zu erreichen, müssen Sie bei Verwendung von bedingten Flussanweisungen mehrere Codezeilen schreiben:
if(expr1) {
expr2;
} else {
expr3;
}
Es ist ersichtlich, dass die oben erwähnte Güte des ternären Operators keine Übertreibung ist. 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 eine einzelne Anweisung ist. Zum Beispiel:
$a>$b ? print „a ist größer als b“ : print „a ist kleiner als b“;
Tatsächlich kann der ternäre Operator erweitert und verwendet werden, wenn die Bedingung erfüllt ist wahr oder nicht, die Ausführungsanweisung ist Es kann mehr als ein Satz sein, versuchen Sie das folgende Format:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
Wir können es eindeutig Beachten Sie, dass mehrere Ausführungsanweisungen Zeichenfolgen verwenden können. Operationssymbole (.") sind miteinander verbunden, und jede Ausführungsanweisung ist von kleinen spitzen Klammern umgeben, um anzuzeigen, dass es sich um eine unabhängige und vollständige Ausführungsanweisung handelt. Nach dieser Erweiterung ähnelt seine Funktion eher der Prozessanweisung „if...else“.
Gleichzeitig kann der ternäre Operator auch verschachtelt verwendet 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“ in Die obige Situation ist tatsächlich so prägnant, und das ist das Schöne daran.
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 folgenden Anweisungen sind syntaktisch korrekt, sie lassen das zweite oder dritte „Element“ in kleinen Anführungszeichen weg:
$a>$b ? print „Yes“ : „“;
$a>$ b ? print 'Nein';
Es ist zu beachten, dass bei Verwendung des ternären Operators empfohlen wird, die print-Anweisung anstelle der echo-Anweisung zu verwenden.
Achten Sie auf das Verständnis der folgenden Reihe von Anweisungen:
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
Dies kann nicht verstanden werden als: wenn $str gleich ist $_GET['abc '], die Zuweisung ist 'wangjinbo', andernfalls ist die Zuweisung 'wjb'; Grund eins: == sollte zur Beurteilung der Gleichheit verwendet werden; Grund zwei: Die Syntax des ternären Operators ist wie oben gezeigt: (expr1 ) ? (expr2): (expr3), offensichtlich kann das obige binäre und ternäre „wangjinbo“ oder „wjb“ keinen sinnvollen Ausdruck bilden
Das richtige Verständnis ist: wenn $_GET['abc'] leer ist (das ist, ob PHP '', null, 0, undifine, alles äquivalent zum booleschen Wert false), weise $str zu 'wangjinbo' zu, andernfalls weise es zu 'wjb' zu

Originallink: bbs.php100 .com/read-htm-tid-24239.html

Oben wurde eine ausführliche Erklärung des ternären PHP-Operators und seiner Aspekte vorgestellt. Ich hoffe, dass sie für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Gearman-Erste-Schritte-NotizenNächster Artikel:Gearman-Erste-Schritte-Notizen