I have a codebase where developers decided to use AND and OR instead of && and ||.
I know that there is a difference in operators’ precedence (&& goes before and), but with the given framework (PrestaShop to be precise) it is clearly not a reason.
Which version are you using? Is and more readable than &&? Or is there no difference?
If you use
ANDandOR, you’ll eventually get tripped up by something like this:Want to guess what
$truthinessequals?If you said
false… bzzzt, sorry, wrong!$truthinessabove has the valuetrue. Why?=has a higher precedence thanand. The addition of parentheses to show the implicit order makes this clearer:If you used
&&instead ofandin the first code example, it would work as expected and befalse.As discussed in the comments below, this also works to get the correct value, as parentheses have higher precedence than
=: