ordre de priorité des opérateurs php

怪我咯
Libérer: 2023-03-10 21:22:02
original
10642 Les gens l'ont consulté

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 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
* / % Opérateur arithmétique

Gauche + – . Opérateur arithmétique et Opérateur de chaîne
gauche << > ;> Opérateurs au niveau du bit
Aucun == != === !== <> 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 = += -= *= /= .= %= &= = ^= <<= >>= => ; 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 < 2 > 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 
?>
Copier après la connexion

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!

É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