Javascript employs the conjunction and disjunction operators.
The left–operand is returned if it can be evaluated as: false, in the case of conjunction (a && b), or true, in the case of disjunction (a || b); otherwise the right–operand is returned.
Do equivalent operators exist in PHP?
PHP supports short-circuit evaluation, a little different from JavaScript’s conjunction. We often see the example (even if it isn’t good practice) of using short-circuit evaluation to test the result of a MySQL query in PHP:
Note that short-circuit evaluation works when in PHP when there is an expression to be evaluated on either side of the boolean operator, which would produce a return value. It then executes the right side only if the left side is false. This is different from JavaScript:
Simply doing:
would return a boolean value
TRUEorFALSEif either is truthy or both are falsy. It would NOT return the value of$bif$awas falsy:So to answer the question, PHP will do a boolean comparison of the two values and return the result. It will not return the first truthy value of the two.
More idiomatically in PHP (if there is such a thing as idiomatic PHP) would be to use a ternary operation:
Update for PHP 7
PHP 7 introduces the
??null coalescing operator which can act as a closer approximation to conjunction. It’s especially helpful because it doesn’t require you to checkisset()on the left operand’s array keys.