(1 || 2) == 1
(1 | 2) == 3
is the difference. :P
More seriously though..
(string | float) == syntax error
(string || float) == compares each side against 0/empty string.
They also have a different order of precidence, eg:
if (s == "wizmet1_2" | s == "ecop1_6")
is interpreted as:
if (s == ("wizmet1_2" | s) == "ecop1_6")
and then you're doing ((string == float) == string) which is two syntax errors.