Answer:
Surprisingly to many, the above code will output bool(true) seeming to imply that the and operator is behaving instead as an or.
The issue here is that the = operator takes precedence over the and operator in order of operations, so the statement $x = true and false ends up being functionally equivalent to:
1 2 |
[crayon-67404c3584890043001371 inline="true" ]$x = true; // sets $x equal to true true and false; // results in false, but has no affect on anything |
[/crayon] This is, incidentally, a great example of why using parentheses to clearly specify your intent is generally a good practice, in any language. For example, if the above statement $x = true and false were replaced with $x = (true and false), then $x would be set to false as expected.
If you want to explore more, visit our PHP edu & tutorials section! Below are some examples:
PHP Super Basics & Possible Code Clash!
Temple – PHP Language engine