PHP 8.4.2 Released!

boolval

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

boolval获取变量的布尔值

说明

boolval(mixed $value): bool

返回 valuebool 值。

参数

value

标量值会被转化成 bool 值。

返回值

valuebool 值。

示例

示例 #1 boolval() 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

参见

添加备注

用户贡献的备注 7 notes

up
54
Matt M
9 years ago
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.
up
44
Anonymous
3 years ago
boolval('false') returns true.
boolval('False') return true.
up
54
info at lomalkin dot ru
11 years ago
<?

// Hack for old php versions to use boolval()

if (!function_exists('boolval')) {
function boolval($val) {
return (bool) $val;
}
}
?>
up
25
raphael.satyago
9 years ago
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
up
23
Babak Bandpey
10 years ago
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.
up
8
uasenior at gmail dot com
4 years ago
<?

// Some way to print boolean value as string

$b = true;

echo ['false', 'true'][$b];

?>
up
-4
Anonymous
10 years ago
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;
}
}

?>
To Top