Maison  >  Article  >  développement back-end  >  Combinaison d'opérateurs ternaires PHP et son utilisation

Combinaison d'opérateurs ternaires PHP et son utilisation

伊谢尔伦
伊谢尔伦original
2017-06-21 15:15:491841parcourir

La fonction de l'

opérateur ternaire est cohérente avec l'instruction de processus "if...else". 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 le script plus concis et efficace.

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 phrase. Par exemple :

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

En fait, l'opérateur ternaire peut être étendu Lorsque la condition définie est vraie ou non, l'instruction d'exécution peut comporter plus d'une phrase :

<.>
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
Nous pouvons clairement voir que plusieurs instructions d'exécution peuvent être connectées à l'aide de l'opérateur de chaîne

("."). Chaque instruction d'exécution est entourée de petits crochets pour indiquer qu'il s'agit d'une instruction indépendante et complète. Exécutez l'instruction. 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 instructions suivantes sont syntaxiquement correctes, elles omettent le deuxième ou le troisième "élément" de manière légèrement sans guillemets :

$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' ; car un : == doit être utilisé pour juger de l'égalité ; la syntaxe de l'opérateur ternaire est comme indiqué ci-dessus : (expr1) (expr2) : (expr3), évidemment le binaire et ternaire ci-dessus 'wangjinbo' ou 'wjb' à lui seul ne peut pas former une

expression significative ; la compréhension correcte de

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

Général Selon les règles des

autres

langages (tels que C ou Java), la logique de fonctionnement du code ci-dessus est :
<?php 
$a=1;$b=2;$c=3;$d=4; 
echo $a<$b?&#39;xx&#39;:$a<$c?&#39;yy&#39;:$a<$d?&#39;zz&#39;:&#39;oo&#39;; 
?>

Alors le résultat final est 'xx' et les opérations suivantes seront ignorées. L'opération ternaire de PHP est associative à gauche.

$a<$b => true => &#39;xx&#39; ==> 结束
C'est clair en un coup d'œil, voici la logique de fonctionnement de PHP :

<?php 
$a=1;$b=2;$c=3;$d=4; 
echo (($a<$b?&#39;xx&#39;:$a<$c)?&#39;yy&#39;:$a<$d)?&#39;zz&#39;:&#39;oo&#39;; 
?>
Cela implique deux types de processus de conversion, à savoir 'xx' => true et ' xx' => vrai.

Je ne sais pas si ce processus est douloureux, c'est vraiment difficile à comprendre...

Enfin, revenez au code ci-dessus et changez-le en C-like Right. combinaison :
$a<$b => true => &#39;xx&#39; => true => &#39;yy&#39; => true => &#39;zz&#39; => 结束

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