Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Wissenspunkte zum ternären PHP-Operator

Zusammenfassung der Wissenspunkte zum ternären PHP-Operator

巴扎黑
巴扎黑Original
2017-08-07 11:13:441129Durchsuche

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. Lassen Sie uns dies weiter unten im Detail besprechen.

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, Baidu Ich habe herausgefunden, dass es sich um PHP 3 handelt. Die Bedeutung des ternären Operators

entspricht


if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}

Die Funktion des ternären Operators ist Dasselbe wie bei der Prozessanweisung „if... else“ ist konsistent, sie 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 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 bedingter Prozessanweisungen mehrere Codezeilen schreiben:


if(expr1) {

expr2;
} else {
expr3;
}

Sie sehen, was ich zuvor über den ternären Operator gesagt habe, 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 und verwendet werden. Wenn die festgelegte Bedingung wahr ist oder nicht, kann es mehr als eine Ausführungsanweisung geben Versuchen Sie das folgende Format:

(expr1) ? (expr2).(expr3) : (expr4).(expr5);

Wir können deutlich erkennen, dass mehrere Ausführungsanweisungen Zeichenfolgen verwenden können Operationssymbole („.“) sind verbunden, und jede Ausführungsanweisung ist in kleine spitze Klammern eingeschlossen, 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“, 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 folgenden Anweisungen sind syntaktisch korrekt, sie lassen das zweite oder dritte „Element“ in kleinen Anführungszeichen weg:


$a>$b ? print "Yes" : "";
$a>$b ? &#39;&#39;: print &#39;No&#39;;

Folgendes ist zu beachten: 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:


$str = $_GET[&#39;abc&#39;] ? &#39;wangjinbo&#39; : &#39;wjb&#39;;

Dies kann nicht verstanden werden als: wenn $str gleich $_GET ist ['abc'], Der Wert ist 'wangjinbo', andernfalls ist der Wert '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 das Obige Das binäre und ternäre 'wangjinbo' oder 'wjb' allein kann keinen sinnvollen Ausdruck bilden

Das richtige Verständnis ist: wenn $_GET['abc'] leer ist (das heißt, ob in PHP „null“, „0“ und „undifine“ alle dem booleschen Wert „false“ entsprechen), weisen Sie $str „wangjinbo“ zu, andernfalls weisen Sie es „wjb“ zu

Das obige ist der detaillierte Inhalt vonZusammenfassung der Wissenspunkte zum ternären PHP-Operator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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