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.
La priorité des opérateurs est la suivante
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone 和 new |
左 | [ | array() |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
无 | == != === !== <> | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到 |
<?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 ?>
est inférieure à celle de l'opérateur T_IS_SMALLER_OR_EQUAL.
Exemple n°1 : Combinaison d'instructions
L'utilisation de parenthèses peut souvent améliorer la lisibilité de votre code, même lorsqu'elles ne sont pas strictement nécessaires. Remarque :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 ()), in dans ce cas, la valeur de retour de foo() est affectée à $a .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!