boolval()
(PHP 5 >= 5.5.0, PHP 7)
获取变量的布尔值
说明
boolval(mixed $var):boolean
返回$var变量的布尔值.
参数
- $var
标量类型会被转化成布尔类型.
返回值
$var变量的布尔值.
范例
Example #1boolval()examples
<?php echo '0: '.(boolval(0) ? 'true' : 'false')."\n"; echo '42: '.(boolval(42) ? 'true' : 'false')."\n"; echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."\n"; echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."\n"; echo '"": '.(boolval("") ? 'true' : 'false')."\n"; echo '"string": '.(boolval("string") ? 'true' : 'false')."\n"; echo '"0": '.(boolval("0") ? 'true' : 'false')."\n"; echo '"1": '.(boolval("1") ? 'true' : 'false')."\n"; echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."\n"; echo '[]: '.(boolval([]) ? 'true' : 'false')."\n"; echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n"; ?>
以上例程会输出:
0: false 42: true 0.0: false 4.2: true "": false "string": true "0": false "1": true [1, 2]: true []: false stdClass: true
参见
floatval()
获取变量的浮点值intval()
获取变量的整数值strval()
获取变量的字符串值settype()
设置变量的类型is_bool()
检测变量是否是布尔型- Type juggling
<? // Hack for old php versions to use boolval() if (!function_exists('boolval')) { function boolval($val) { return (bool) $val; } } ?>
To anyone like me who came here looking for a way to turn any value into a 0/1 that will fit into a MySQL boolean (tinyint) field: <?php $tinyint = (int) filter_var($valToCheck, FILTER_VALIDATE_BOOLEAN); ?> tinyint will be 0 (zero) for values like string "false", boolean false, int 0 tinyint will be 1 for values like string "true", boolean true, int 1 Useful if you are accepting data that might be from a language like Javascript that sends string "false" for a boolean false.
I believe that the double negation !! can perform the same task with the same result if your PHP is not up2date var_dump(!!1, !!0, !!"test", !!""); outputs: boolean true boolean false boolean true boolean false May the life be good to you.
function is_true($val, $return_null=false){ $boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val ); return ( $boolval===null && !$return_null ? false : $boolval ); } // Return Values: is_true(new stdClass); // true is_true([1,2]); // true is_true([1]); // true is_true([0]); // true is_true(42); // true is_true(-42); // true is_true('true'); // true is_true('on') // true is_true('off') // false is_true('yes') // true is_true('no') // false is_true('ja') // false is_true('nein') // false is_true('1'); // true is_true(NULL); // false is_true(0); // false is_true('false'); // false is_true('string'); // false is_true('0.0'); // false is_true('4.2'); // false is_true('0'); // false is_true(''); // false is_true([]); // false
A misspell in v2.0. :-) Hack v2.1 <?php if( ! function_exists('boolval')) { /** * Get the boolean value of a variable * * @param mixed The scalar value being converted to a boolean. * @return boolean The boolean value of var. */ function boolval($var) { return !! $var; } } ?>