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