Maison  >  Article  >  développement back-end  >  ordre de priorité des opérateurs php

ordre de priorité des opérateurs php

怪我咯
怪我咯original
2018-05-24 16:38:5210630parcourir

Priorité de l'opérateur spécifie à quel point deux expressions sont "étroitement" liées. Par exemple, l'expression 1 + 5 * 3 est évaluée à 16 au lieu de 18 car le signe de multiplication (« * ») a une priorité plus élevée que le signe plus (« + »). Les parenthèses peuvent être utilisées pour forcer un changement de priorité si nécessaire. Par exemple : (1 + 5) * 3 a la valeur 18.

Si les opérateurs ont la même priorité, leur direction associative détermine si l'évaluation doit se faire de droite à gauche ou de gauche à droite - voir l'exemple ci-dessous.

Le tableau suivant 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.

tr > Gauche tr>opérateur logiqueopérateur logique
Direction combinée Opérateur Informations supplémentaires
Aucun clone nouveau clone et nouveau
Gauche [ array()
Droite ++ — ~ (int) (float) (string) (array) (object) (bool) @ Type et incrémentation/décrémentation
Aucune instance de type
droit  ! td > Opérateur logique
结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
10e3fdaca48eb0367c6d60dbc98f885d> 位运算符
== != === !== a8093152e673feb7aba1828c43532094 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
* / % Opérateur arithmétique

Gauche + – . Opérateur arithmétique et Opérateur de chaîne
gauche d1d31c49bb2172f24b90c17dc6589b8e Opérateurs au niveau du bit
Aucun == != === !== a8093152e673feb7aba1828c43532094 Comparaison opérateurs
Gauche & Opérateurs et références au niveau du bit
Gauche ^ Opérateur au niveau du bit
Gauche | Opérateurs au niveau du bit
Gauche && Opérateurs logiques
Gauche || Opérateur logique
Gauche  : Opérateur ternaire
Droite = += -= *= /= .= %= &= = ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => ; Opérateur d'affectation
gauche et opérateur logique
gauche xor
gauche ou
gauche , utilisé dans de nombreux endroits pour
Pour les opérateurs ayant la même priorité, le sens associatif gauche signifie que l'évaluation se fera de gauche à droite, et le sens associatif droite signifie vice versa. Il est possible qu'un opérateur avec la même priorité sans direction associative ne puisse pas être combiné avec lui-même. Par exemple, en PHP 1 d66d2a93259ca9392db29f00ed43fda0 1 est une instruction illégale, mais 1 <= 1 == 1 ne l'est pas. Car la priorité de l'opérateur T_IS_EQUAL

est inférieure à celle de l'opérateur T_IS_SMALLER_OR_EQUAL.
<?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 
// mixing ++ and + produces undefined behavior 
$a = 1; 
echo ++$a + $a++; // may print 4 or 5 
?>

Exemple Combiné avec la direction, le code est le suivant

PS : L'utilisation de parenthèses, même lorsqu'elles ne sont pas strictement nécessaires, peut généralement améliorer la lisibilité du code. Bien que = ait une priorité inférieure à celle de la plupart des autres opérateurs, PHP autorise toujours des expressions comme celles-ci : if (!$a = foo()), dans ce cas, la valeur de retour de foo() est affectée à $ un.

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