Comment les opérateurs | et || dans les expressions OR diffèrent-ils ?
Quand en travaillant avec des opérateurs logiques, nous rencontrons souvent l'opérateur || (double tube) pour les expressions OR. Cependant, il existe également un opérateur monotube, |. Comprendre la différence entre ces utilisations est crucial.
Comportement en cas de court-circuit
Comme le && et && & opérateur, l'opérateur || est un opérateur "court-circuit". Dans les expressions OR, cela signifie que si la première condition est vraie, les conditions suivantes ne sont pas évaluées.
Par exemple :
if(condition1 || condition2 || condition3)
Si la condition1 est vraie, la condition2 et la condition3 ne le seront pas. être vérifié.
En revanche, l'opérateur | ne présente pas ce court-circuit comportement.
if(condition1 | condition2 | condition3)
Avec cet opérateur, les conditions2 et 3 seront vérifiées même si la condition1 est vraie. Cela peut être avantageux lorsque les conditions sont des fonctions coûteuses, car cela peut améliorer les performances.
Références nulles et exceptions
Cependant, il y a une mise en garde à prendre en compte lors de l'utilisation de l'option | opérateur. Contrairement à l'opérateur ||, qui peut empêcher les NullReferenceExceptions, l'opérateur | n'offre pas cette protection.
Par exemple :
if(class != null & & class.someVar < 20)
Avec l'opérateur ||, si la classe est nulle, l'instruction se termine normalement après avoir évalué la première condition. D'un autre côté, avec l'opérateur |, class.someVar sera évalué même si la classe est nulle, déclenchant potentiellement une NullReferenceException.
Opérations au niveau du bit
Outre les expressions OR, les opérateurs | et & avoir une autre utilité : les opérations au niveau du bit. Ces opérations impliquent la manipulation de bits dans des représentations binaires, offrant un contrôle plus précis sur des bits spécifiques.
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!