Quand est-ce que j'utilise un "OU" vs un || dans une instruction cfif ColdFusion?Quand utiliser || vs OR dans ColdFusion dans un <cfif>?
Répondre
Les tubes doubles (ainsi que les doubles ampersanders) sont supportés dans ColdFusion depuis CF8. Depuis que j'ai appris cela, j'utilise toujours un double tube/double ampersand au lieu de OR/AND. La raison pour laquelle je code avec ce style est que "OU" n'est pas complètement descriptif en ce qui concerne l'opération en cours. Il y a bit-OU, logique-OU et logique-OU avec court-circuit.
Bitwise OU: 01 | 10 = 11
logique OU: buildErrorsOn(form.varA) | buildErrorsOn(form.varB)
logique OU (court-circuit): isDefined('url.doStuff') || isDefined('url.doStuff')
Dans presque toutes les langues que vous pouvez utiliser en ce moment (qu'apparente Oracle d'être un notable exception), le double tuyau signifie toujours logique-OU avec court-circuit. C'est une notation précise.
Vous n'êtes pas sûr à ce sujet, mais il semblerait qu'une instruction cfif
ne prend en charge que OU, donc la réponse à votre question est 'always'. Voir ceci:
Il peut y avoir un soutien à CF9 qui apporte la parité à ces mots clés, bien que je ne pouvais pas trouver une référence pour indiquer que. Vraiment, vous feriez probablement mieux d'utiliser simplement le mot-clé OR dans CFIF, et de sauvegarder le || pour la concaténation de chaînes dans les requêtes SQL.
Cela ressemble à || a été soutenu depuis CF8. Je trouve toujours «ou» plus intuitif. (D'ailleurs, j'utilise toujours "+" pour la concaténation de chaînes dans SQL - ou est-ce exclusif à SQL Server?)
Oui, pour SQL "+" est spécifique à SQL Server. Si la mémoire est bonne, Oracle utilise "||" (confusingly;), MySQL CONCAT(), ... – Leigh
On pourrait espérer (ou souhaiter, au moins) qu'il pourrait y avoir un accord au moins sur un simple opérateur logique: -/ –
Haha .. on peut _wish_. Mais c'est à peu près tout. – Leigh
Je préfère || dans CFSCRIPT et OR dans CFML.
Bien que je préfère || et &&, je dois admettre qu'il est beaucoup plus probable que l'on se tromperait || pour | que de confondre les versions à main longue OR et BitOr. Au moins au début .. – Leigh