Maison >développement back-end >tutoriel php >Introduction détaillée à l'opérateur ternaire en php

Introduction détaillée à l'opérateur ternaire en php

怪我咯
怪我咯original
2017-06-20 14:03:551758parcourir

Bienvenue pour apprendre le phparithmétique ternaire ici ! Voici le contenu passionnant que nous avons compilé pour vous. J'espère que tout le monde pourra apprendre ici ! Opérateur ternaire Syntaxe : Condition 1 : Résultat 2 Description : La position devant le point d'interrogation est la condition du jugement. Si la condition est remplie, le résultat est 1. , et si ce n’est pas le cas, le résultat est 2. Discutons-en en détail ci-dessous.

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

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

Cette phrase signifie la même chose que

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

La fonction de l'opérateur ternaire est la même 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;
}

On peut voir que la bonté de l'opérateur ternaire 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 phrase. Par exemple :

1$a>$b ? print "a est supérieur à b" : print "a est inférieur à b";

En fait, l'opérateur ternaire peut être étendu lorsque les conditions sont définies Que ce soit vrai ou non, l'instruction d'exécution peut comporter plus d'une phrase. Essayez le format suivant :

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

Nous pouvons clairement voir que plusieurs instructions d'exécution peuvent utiliser la chaîne . l'opérateur ( ".") sont connectés et chaque instruction d'exécution est entourée de petits crochets angulaires 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 utilisé 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 pourrait y avoir des problèmes avec la maintenance du code à l'avenir. Cependant, par rapport aux instructions de processus telles que "if... else". ", dans la situation ci-dessus, c'est en effet trop concis, 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 instructions suivantes sont syntaxiquement correctes, elles omettent le deuxième ou le troisième "élément" de manière légèrement sans guillemets :

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

Il est à noter : lors de l'utilisation de l'opérateur ternaire, il est recommandé d'utiliser l'instruction print remplace 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'], l'affectation est 'wangjinbo', sinon l'affectation est 'wjb';Parce que un : == doit être utilisé pour juger de l'égalité ; Deuxième raison : La syntaxe de l'opérateur ternaire est la suivante : (expr1) : (expr3), évidemment, le binaire ci-dessus, ternaire 'wangjinbo' ou 'wjb' à lui seul ne peut pas former une expression significative;

La compréhension correcte est la suivante : lorsque $_GET['abc'] est vide (c'est-à-dire , que '' en PHP, null, 0, undifine, soient 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