Théorie : Simplifier l'écriture d'une condition

WRInaute passionné
Bonjour

Je viens d'écrire une condition :
Code:
if ($formule=1 OR $formule=2 OR $formule=3){;}

C'est un peu fastidieux.

Ne peut-on simplifier cela, par exemple, je dis ça au pif :
Code:
if ($formule=1|2|3){;}

:?:
 
WRInaute accro
Meeuuuhhh a dit:
Bonjour

Je viens d'écrire une condition :
Code:
if ($formule=1 OR $formule=2 OR $formule=3){;}

C'est un peu fastidieux.

Ne peut-on simplifier cela, par exemple, je dis ça au pif :
Code:
if ($formule=1|2|3){;}

:?:

Déjà tu devrais utiliser ==, qui sert a vérifier l'égalité, = est un opérateur d'affectation.

Sinon je ne vois ni comment ni pourquoi simplifier ça. Perso je n'utilises jamais or mais || (mais ca ne change rien au problème).
 
WRInaute passionné
Ouais j'ai corrigé le truc depuis, j'ai écrit == (t'as l'air de dire ça comme si c'état facultatif :mrgreen: )


"||" ça fait plus pro que "OR", mais finalement ça change quoi ?
 
WRInaute occasionnel
Par expérience : le in_array est joli, plutôt bandant et tout et tout (il est plus maintenable, également...)
Mais honnêtement, ça ne changera rien !
Il faut, à mon sens, plus penser 'maintenance' que super méthode pour gagner 4 caractères !
Écrivons du code clair, simple, bien indenter, les perf ne changerons pas, mais au moins ça sera clair !

Quant au OR ou au ||, je préfère le pipe :)
 
WRInaute accro
Meeuuuhhh a dit:
"||" ça fait plus pro que "OR", mais finalement ça change quoi ?

J'arrive plus facilement à lire le code quand il utilise les opérateurs.

Par ailleurs, histoire de ne pas mourir bête, je viens de trouver ça sur un site :

La différence entre AND et && (respectivement OR et ||) réside dans la priorité d'exécution. Les opérateurs && et || ont une priorité plus élevée par rapport à leur semblable litéral respectif.
 
WRInaute passionné
La différence entre AND et && (respectivement OR et ||) réside dans la priorité d'exécution. Les opérateurs && et || ont une priorité plus élevée par rapport à leur semblable litéral respectif.
[/quote]


Un exemple pratique :?:

Parce que là je ne vois pas dans quel cas ce peut être utile.
 
WRInaute accro
Meeuuuhhh a dit:
Un exemple pratique :?:
Parce que là je ne vois pas dans quel cas ce peut être utile.

ça veux dire que :

A OR B && C est équivalent à A || (B && C) et que ce n'est pas forcement équivalent a A || B && C
Je n'ai pas vérifié la table des résultats de cet exemple, mais je présuppose que dans certaines associations plus complexes ça change le résultat.
 
WRInaute accro
en fait l'exemple que je donne était mal choisi il est plus facile de mettre en évidence la différence dans l'ordre de traitement en faisant varier le tout.

Code:
0 || 0 && 0 ->
0 || 0 && 1 ->
0 || 1 && 0 ->
0 || 1 && 1 -> 1
1 || 0 && 0 -> 1
1 || 0 && 1 -> 1
1 || 1 && 0 -> 1
1 || 1 && 1 -> 1

0 AND 0 OR 0 ->
0 AND 0 OR 1 -> 1
0 AND 1 OR 0 ->
0 AND 1 OR 1 -> 1
1 AND 0 OR 0 ->
1 AND 0 OR 1 -> 1
1 AND 1 OR 0 -> 1
1 AND 1 OR 1 -> 1

0 OR 0 && 0 ->
0 OR 0 && 1 ->
0 OR 1 && 0 ->
0 OR 1 && 1 -> 1
1 OR 0 && 0 -> 1
1 OR 0 && 1 -> 1
1 OR 1 && 0 -> 1
1 OR 1 && 1 -> 1

0 || 0 AND 0 ->
0 || 0 AND 1 ->
0 || 1 AND 0 ->
0 || 1 AND 1 -> 1
1 || 0 AND 0 ->
1 || 0 AND 1 -> 1
1 || 1 AND 0 ->
1 || 1 AND 1 -> 1
 
WRInaute passionné
Ah ouais ok, merci pour l'exemple Agir XIX

Ceci dit, une bonne paire de parenthèse marque aussi la priorité il me semble.
 
WRInaute accro
Meeuuuhhh a dit:
Ceci dit, une bonne paire de parenthèse marque aussi la priorité il me semble.
Oui et permet de plus une lisibilité des équations, c'est pour cela que je les utilise en tous cas, même quand elle ne sont pas indispensables.
 
Discussions similaires
Haut