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.
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 | tr >|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Aucune | instance de | type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
droit | ! td > |
Opérateur logique
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* / % | 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 | tr>|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | opérateur logique||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gauche | ou | opérateur logique||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gauche | , | utilisé dans de nombreux endroits pour |
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!