Detaillierte Erklärung des ternären PHP-Operators und if

*文
Freigeben: 2023-03-18 15:02:01
Original
29453 Leute haben es durchsucht

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?'是':'否';
Nach dem Login kopieren

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="否";
}
Nach dem Login kopieren

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);
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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";
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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 ? &#39;&#39;: print &#39;No&#39;;
Nach dem Login kopieren
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[&#39;abc&#39;] ? &#39;wangjinbo&#39; : &#39;wjb&#39;;
Nach dem Login kopieren

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.


Empfohlene verwandte Artikel:

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage