Maison  >  Article  >  développement back-end  >  Résumé des points de connaissance sur l'opérateur ternaire PHP

Résumé des points de connaissance sur l'opérateur ternaire PHP

巴扎黑
巴扎黑original
2017-08-07 11:13:441138parcourir

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. Discutons-en en détail ci-dessous.

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 que c'était PHP 3 La signification de l'opérateur ternaire

est équivalente à


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

La fonction de l'opérateur ternaire est la même chose que l'instruction de processus "if... else" est cohérente, elle est écrite sur une seule ligne, 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 processus conditionnelles, vous devez écrire plusieurs lignes de code :


if(expr1) {

expr2;
} else {
expr3;
}

Vous pouvez voir, ce que j'ai dit précédemment à propos de l'opérateur ternaire 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 phrase. 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 être plusieurs. phrase. Essayez le format suivant :

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

Nous pouvons clairement voir que plusieurs instructions d'exécution peuvent utiliser une chaîne. les symboles d'opération ("".") sont connectés et chaque instruction d'exécution est entourée de petits crochets pour indiquer qu'il s'agit d'une instruction d'exécution indépendante et complète. Après cette extension, 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 quand a est inférieur à b : si b est inférieur à 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) ;

La lisibilité de l'opérateur ternaire imbriqué n'est pas très bonne et il peut y avoir des problèmes de maintenance du code à l'avenir. Cependant, par rapport aux instructions de processus telles que "if. ..else", dans ce qui précède. Dans ce cas, c'est effectivement trop simple, ce qui fait 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. Les déclarations suivantes sont syntaxiquement correctes, 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 convient de 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 : lorsque $str est égal à $_GET ['abc'], la valeur est 'wangjinbo' sinon la valeur est 'wjb' ; première raison : == doit être utilisé pour juger de l'égalité ; deuxième raison : la syntaxe de l'opérateur ternaire est comme indiqué ci-dessus : (expr1) ? (expr2) : (expr3), évidemment ce qui précède. Le binaire et ternaire 'wangjinbo' ou 'wjb' ne peut pas former à lui seul une expression significative

La compréhension correcte est : lorsque $_GET['abc'] est vide ; (c'est-à-dire que, en PHP '', null, 0, undifine, tous équivalents à la valeur booléenne false), attribuez $str à 'wangjinbo', sinon attribuez-le à 'wjb'

;

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