Maison > développement back-end > Problème PHP > Quelle est la priorité des opérateurs en php ?

Quelle est la priorité des opérateurs en php ?

青灯夜游
Libérer: 2023-02-26 20:58:02
original
5727 Les gens l'ont consulté

La priorité des opérateurs 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 une valeur de 18.

Quelle est la priorité des opérateurs en php ?

La priorité de l'opérateur détermine l'ordre des opérations. Celle avec le niveau d'opération le plus élevé est calculée en premier. Si les priorités sont les mêmes, alors la direction de la combinaison des opérateurs détermine comment. pour fonctionner. Les changements de priorité peuvent être forcés en utilisant des parenthèses.

L'ordre de priorité des opérateurs de haut en bas est le suivant :

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

Pour les opérateurs ayant la même priorité, le sens associatif gauche signifie que l'évaluation se fera de gauche à droite, associatif droit La direction est opposée. Il est possible qu'un opérateur avec la même préséance sans direction associative ne puisse pas être combiné avec lui-même.

Exemple : Instructions de liaison

<?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

Remarque : L'utilisation de parenthèses, même lorsqu'elles ne sont pas strictement requises, améliore souvent la lisibilité de votre 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 foo() La valeur de retour 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