Maison  >  Article  >  développement back-end  >  Explication détaillée de l'ordre de priorité des opérateurs PHP

Explication détaillée de l'ordre de priorité des opérateurs PHP

怪我咯
怪我咯original
2017-04-19 16:37:115134parcourir

Lorsque nous avons parlé des opérateurs logiques PHP plus tôt, nous avons mentionné la priorité des opérateurs PHP. La soi-disant priorité de l'opérateur fait référence à quel opérateur dans l'expression est calculé en premier et lequel est calculé plus tard. l'expression 1 + 5 * 3

vaut 16 au lieu de 18 car le signe de multiplication ("*") a une priorité plus élevée que le signe plus ("+"). Si nécessaire, des parenthèses peuvent être utilisées pour forcer un changement de priorité. Par exemple : (1 + 5) * 3 a la valeur 18.

Les règles suivies par les opérateurs PHP dans les opérations sont les suivantes : les opérations avec une priorité plus élevée sont exécutées en premier, et les opérations avec une priorité inférieure sont exécutées plus tard. Si elles ont la même priorité, elles sont exécutées dans l'ordre de gauche à droite. , par exemple, "-" est lié à gauche, alors 1 - 2 - 3 est équivalent à (1 -

2) - 3 et le résultat est -4 D'un autre côté, "=" est. lié à droite, donc $a = $b = $c est équivalent à $a = ($b = $c).

Explication détaillée de lordre de priorité des opérateurs PHPLes opérateurs entre parenthèses sont exécutés en premier. L'utilisation de parenthèses, même si cela n'est pas nécessaire, indique clairement l'ordre des opérations grâce à l'appariement des parenthèses, plutôt que de s'appuyer sur la priorité et l'associativité des opérateurs. . Pour décider, cela peut améliorer la lisibilité du code. Le tableau

répertorie les opérateurs par ordre de priorité de haut en bas. Les opérateurs d'une même ligne ont la même priorité et la direction dans laquelle ils sont combinés détermine l'ordre d'évaluation.

结合方向 运算符 附加信息
clone new clone和new
[ array()
** 算术运算符
++            --            ~            (int)            (float)            (string)            (array)            (object)            (bool)            @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
*            /            % 算术运算符
+            -            . 算术运算符和字符串运算符
           >> 位运算符
                       >            >= 比较运算符
==            !=            ===            !==                         比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
?? 比较运算符
? : 三元运算符
=            +=            -=            *=            **=            /=            .=            %=            &=            |=            ^=                        >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符

Il est irréaliste et inutile de mémoriser clairement autant de niveaux de priorité si vous le souhaitez. Si l'expression que vous écrivez est très complexe et contient de nombreux symboles d'opérations, n'utilisez pas de parenthèses, pensez à. le suivant  :

<?php
$a and (($b !=$c) or (5*(50-$d)));
?>

Cela peut réduire la possibilité d'erreurs logiques

est parfois utilisé. Les parenthèses peuvent améliorer la lisibilité de votre code. Par exemple, ce qui suit :

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

//三元运行的结合
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5


?>


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