Bonjour, en testant des expressions utilisées dans un scénario, je constate que la simple barre verticale | dans l’expression donne un résultat numérique 0 ou 1 et la double barre || donne true ou false comme résultat. Y a-t-il une préconisation sur l’utilisation de | et ||. ou est ce sans importance ?
Merci
On preconise && pour ET || pour OU
Bonjour.
C’est comme : = # == # ===, elles sont toutes différentes
Bonsoir, oui = # == bien sur l’un assigne l’autre compare (enfin j’abrège) mais === ?? vu nulle part
Hello,
« | » est prioritaire sur « || » dans une expression PHP. Mais « | » travail sur les bits, c’est donc un peu particulier et je ne pense pas que tu auras un jour une raison de l’utiliser à la place de « || ».
Pour plus d’explication : PHP: Opérateurs sur les bits - Manual
C est visiblement pas si evident que ca pour tout le monde
Verifie en plus égalité du type (string ↔ string, binaire ↔ binaire, …)
true == 1 ==> vrai
true === 1 ==> faux
Bonsoir Oui j’avais lu le futur remplacement de ET/et/and par && et OU/ou/OR par | (soucis de coller à la norme) mais le double || me retourne un résultat différent du simple | bien que les deux résultats soient identiquement comparable l’un se présente sous forme numérique l’autre sous forme string. Je m’interrogeais sur les futures versions: Jeedom fera-t-il une différence entre | et || si oui, un sacré paquet de scénarios à revoir.
C pas jeedom qui fera la difference. Y a deja une difference !
Les posts ci dessus l’explique bien
Ok j’étais passé à côté n’ayant jamais eu à l’utiliser . M’étant limité au manuel Jeedom scénario le === n’est pas mentionné mais je n’avis pas pensé au manuel PHP , pan sur les doigts, merci @Bison opérations sur les bits là je comprends mieux la différence.
Je ne savais pas que le |
était supporté et je ne suis pas certain de ce qu’il veut dire car il y a toujours risque de différence entre du pure php et ce qu’on met dans jeedom mais ce n’est pas du tout un OU.
Très dangereux de faire de telle conclusion basée sur un unique test:
Non le simple pipe n’est pas un or donnant le résultat en numérique, c’est un operateur travaillant sur les bits (et pas sur l’entier) (bitwise operators)
Exemple
3 | 1 = 3
,
5 | 2 = 7
Edit: j’avais commencé à écrire ma réponse en draft il y a quelques heures avant d’être interrompu, je vois seulement maintenant que @Bison a répondu entre temps
jusqu’à présent pour tous mes scénarios (un sacré paquet) qui requièrent un OU j’utilisait un simple pipe et ils fonctionnaient correctement (mais pas de PHP), je vais peu à peu les modifier avec un double pipe pour etre dans les clous avec la doc scénario Jeedom, sacré boulot,
En tout cas merci à tous
en quoi alors ?
enfin pas de php je voulais dire pas de bloc code juste des scénario rédigé avec les blocs jeedom autre que code
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.