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

巴扎黑
Libérer: 2023-03-14 18:32:01
original
1124 Les gens l'ont consulté

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?'是':'否';
Copier après la connexion

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="否";
}
Copier après la connexion

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;
}
Copier après la connexion

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";
Copier après la connexion

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;;
Copier après la connexion

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;;
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!