In Javascript and Python, 0 || 1 returns 1.
But in PHP, 0 || 1 returns true.
How to do if I want 0 || 1 return 1 in PHP?
another example,
$a is array(array('test'))
I want $a['test'] || $a[0] || array() return array('test'), How to do?
It returns the boolean TRUE to whatever called dance(). That's all.
0 is the integer value of zero, and false is the boolean value of, well, false.
Value 0 and 1 is equal to false and true in php.
The is_bool() function checks whether a variable is a boolean or not. This function returns true (1) if the variable is a boolean, otherwise it returns false/nothing.
The other answers appear to only care about converting boolean to an integer. I think you really want for the second value to be the result if the first is falsy (0, false, etc.)?
For the other languages' behaviour, the closest we have in PHP is the short-hand "ternary" operator: 0?:1.
That could be used in your script like: $result = get_something() ?: 'a default';
See the ternary operator documentation for details.
Because 0 || 1 is a boolean expression, it assumes you want a boolean result.
You can cast it to an int:
echo (int)(0 || 1);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With