2013-07-17 13 views
13

Ich habe immer || (Doppelrohr) für if (($a == $b) || ($a == $c)) { } und or für do_this() or do_that(); verwendet.logische Operatoren oder vs || (Doppelrohr) in php

Warum nicht if (($a == $b) or ($a == $c)) { } oder do_this() || do_that();?

Gibt es einen Grund, einen dieser beiden logischen Operatoren zu verwenden, oder ist dies nur eine persönliche Vorliebe?

Das gleiche gilt für && vs and, die ich nur && verwenden.

+2

über das doppelte: Die Frage ist sehr ähnlich, ist wahr, aber nicht genau das gleiche, und leider ist es schwierig, eine Frage zu finden, wenn du suchst nur nach "|| vs ODER", deshalb habe ich im Titel "Doppelpfeife" verwendet. – Miawa

Antwort

14

Die "buchstabierten" Operatoren and und or haben eine niedrigere Priorität, sogar niedriger als die Zuweisung, so dass Sie sie verwenden können, um zu vermeiden, dass Sie an so vielen Stellen Klammern schreiben müssen. Zum Beispiel:

$d=$a||$b and $c entspricht ($d=$a||$b) && $c

Sie sind auch besser lesbar in vielen Zusammenhängen.

+0

Im konkreten Fall von 'if ($ a || $ b) {...}' ist nur die Vorliebe, '||' oder 'oder' zu verwenden? – Miawa

+1

Hängt davon ab, was $ a und $ b sind. Wenn sie Variablen sind, ist die Lesbarkeit der einzige Unterschied. Wenn es sich um komplexe Ausdrücke handelt, kann der Unterschied im Vorrang eine Rolle spielen. – Joni

Verwandte Themen