So I understand this - and comparing/checking values. However, I was messing about and noticed the outcome for all my tests were the same - some of which I was taught (a) didn't work or (b) was incorrect.
Note, I'm running PHP7. Okay, to my point. I was able to achieve the same outcome checking if a single value equals one of multiple options...
These work...why? Def not the way I learned.
if ($status == 'in-progress' || 'in-review')
// and even
if ($status == ('in-progress' || 'in-review')) // kind of similar to ASP.NET Razor
if($stat == 'a' || $stat == 'b')
First off to make it clear
== has a higher precedence than
||. This means your two if statements look like this:
if (($status == 'in-progress') || 'in-review') if ($status == ('in-progress' || 'in-review'))
Now for your first if statement regardless what value
$status has and what the outcome of
($status == 'in-progress') is, since you have an OR in it and after it
'in-review' your if statement will always be true, since a non empty string is a truthy value.
For your second statement, this part
('in-progress' || 'in-review') comes literally down to
TRUE || TRUE, which evaluates to TRUE. Now
$status just needs to hold a truthy value and the if statement will be true.