In the first example, you basically do this:
if ((condition1 || condition2) || (condition3 || condition4))
Now condition 1 and condition 3 can be true or false, depending on the contents of some.thing and some.how, but conditions 2 and 4 will always be false (0 is false), so basically what you say ,
if (condition1 || condition3)
Second example:
if (condition1 || condition2 || condition3 || condition4)
Your third example looks something like this:
if ((condition1 || condition2) || (condition3 || condition4))
And now they can all be false or true (for both the second and the third example).
Keep in mind that if, for example, some.thing is '' while some.how is 'something', the whole set of conditions will be true.
source share