Maison  >  Article  >  développement back-end  >  Explication détaillée de l'opérateur ternaire php et si

Explication détaillée de l'opérateur ternaire php et si

*文
*文original
2018-05-15 15:08:1829360parcourir

Syntaxe de l'opérateur ternaire : condition résultat 1 : résultat 2 Remarque : La position devant le point d'interrogation est la condition du jugement. Si la condition est remplie, le résultat est 1, et si elle n'est pas remplie, le résultat est 2.

Manuel recommandé : Manuel d'auto-apprentissage complet php

Cet article compare et explique l'opérateur ternaire et si...sinon... en détail. J'espère que cela aidera tout le monde.

Aujourd'hui, alors que je révisais mon article en ligne, j'ai rencontré une phrase que je ne comprenais pas :

$if_summary = $row['IF_SUMMARY']==2?'是':'否';

Plus tard, Baidu a découvert qu'il s'agissait de l'opérateur ternaire de PHP

Le sens de cette phrase est équivalent à

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

La fonction de l'opérateur ternaire est cohérente avec l'instruction de processus "if...else". Elle est écrite sur une seule ligne, et. le code est très concis et l'efficacité d'exécution est plus élevée.

L'utilisation appropriée de l'opérateur ternaire dans les programmes PHP peut rendre les scripts plus concis et efficaces.

Le format du code est le suivant :

(expr1) ? (expr2) : (expr3);

Explication :

Si la condition "expr1" est vraie, exécutez l'instruction "expr2", sinon exécutez "expr3 ".

Pour obtenir la même fonction, si vous utilisez des instructions de flux conditionnelles, vous devez écrire plusieurs lignes de code :

if(expr1) {

expr2;
} else {
expr3;
}

On peut voir que la bonté du ternaire L'opérateur mentionné ci-dessus n'est pas une exagération. Cependant, dans la plupart des cas, nous n'utilisons l'opérateur ternaire que lorsque le code est relativement simple, c'est-à-dire lorsque l'instruction d'exécution n'est qu'une seule instruction.

Par exemple :

$a>$b ? print "a大于b" : print "a小于b";

En fait, l'opérateur ternaire peut être étendu et utilisé lorsque la condition définie est vraie ou non, l'instruction d'exécution peut comporter plusieurs phrases Try. le format suivant :

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

Nous pouvons clairement voir que plusieurs instructions d'exécution peuvent être connectées à l'aide d'opérateurs de chaîne ("."), et chaque instruction d'exécution est entourée de petits crochets angulaires pour indiquer qu'il s'agit d'une instruction indépendante et une déclaration complète.

Après cette expansion, sa fonction est plus proche de l'instruction de processus "if...else".

En même temps, l'opérateur ternaire peut également être imbriqué.

Par exemple, lorsque a est supérieur à b : si a est inférieur à c, alors x=c-a sinon x=a-c

Sinon lorsque a est inférieur à b : si b est inférieur ; que c, alors x=c-b Sinon x=b-c :

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);

L'opérateur ternaire imbriqué n'est pas très lisible, et il peut y avoir des problèmes de maintenance du code à l'avenir, mais par rapport à "if... else" L'instruction de flux de la classe est en effet trop concise dans la situation ci-dessus, ce qui est son attrait.

Pour ceux qui aiment être paresseux et recherchent la simplicité du code, utiliser l'opérateur ternaire pour remplacer l'instruction de processus if devrait être un excellent choix. Même si vous n'avez pas besoin de prendre en compte un « élément » autre que la phrase avec sursis dans le « ternaire », l'utilisation de l'opérateur ternaire est toujours plus concise que les instructions if.

La syntaxe des affirmations suivantes est correcte, elles omettent le deuxième ou le troisième « élément » entre petites guillemets :

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

Il est à noter que :

Lors de l'utilisation de l'opérateur ternaire, il est recommandé d'utiliser l'instruction print au lieu de l'instruction echo.

Faites attention à la compréhension de la série d'instructions suivante :

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

Cela ne peut pas être compris comme :

Quand $str est égal à $_GET['abc '], l'affectation est 'wangjinbo' sinon la valeur est 'wjb' ;

Parce que une : == doit être utilisée pour juger de l'égalité

Deuxième cause : la syntaxe de l'opérateur ternaire ; est comme indiqué ci-dessus : (expr1) ? ( expr2) : (expr3), évidemment le binaire, ternaire 'wangjinbo' ou 'wjb' ci-dessus ne peut pas former à lui seul une expression significative

Le la compréhension correcte de est :

$_GET['abc'] est une valeur nulle (c'est-à-dire si (false), ' ', null, 0, undifine en PHP sont tous équivalents au booléen valeur false). À ce moment, $str se voit attribuer la valeur ' wjb', sinon la valeur est 'wangjinbo' ; , le contenu lui-même $_GET['abc'] est vrai, la condition est établie et la valeur d'affectation str est 'wangjinbo', sinon la valeur est 'wjb' lorsqu'il n'y a pas de valeur claire true, true (true) ; signifie qu'il y a une valeur, false (faux) signifie qu'il n'y a pas de valeur.

Articles connexes recommandés :

1.
Opérateur ternaire PHP : rapide ou pas ? 2.
Une comparaison simple de l'opérateur ternaire et de l'opérateur de coalescence Null en PHP 3.
Quels sont les opérateurs courants en php
Recommandations vidéo associées : 1.
Dugu Jiujian (4)_Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Extension PHP à RustArticle suivant:Extension PHP à Rust