PHP 日本大会 2024

boolval

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

boolval获取变量的布尔值

描述

boolval(混合 $value): 布尔值

返回value布尔值

参数

value

要转换为布尔值的标量值。

返回值

value布尔值

示例

示例 #1 boolval() 示例

<?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 条注释

Matt M
9 年前
对于像我一样来这里寻找将任何值转换为适合 MySQL 布尔值 (tinyint) 字段的 0/1 的方法的任何人

<?php
$tinyint
= (int) filter_var($valToCheck, FILTER_VALIDATE_BOOLEAN);
?>

对于像字符串 "false"、布尔值 false、整数 0 这样的值,tinyint 将为 0(零)

对于像字符串 "true"、布尔值 true、整数 1 这样的值,tinyint 将为 1

如果您接受可能来自像 Javascript 这样的语言的数据,这些语言会为布尔值 false 发送字符串 "false",则此方法很有用。
匿名
3 年前
boolval('false') 返回 true。
boolval('False') 返回 true。
info at lomalkin dot ru
11 年前
<?

// 用于旧版 php 版本以使用 boolval() 的 hack

if (!function_exists('boolval')) {
function boolval($val) {
return (bool) $val;
}
}
?>
raphael.satyago
9 年前
function is_true($val, $return_null=false){
$boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val );
返回 ( $boolval===null && !$return_null ? false : $boolval );
}

// 返回值

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
Babak Bandpey
10年前
我相信如果你的PHP版本不是最新的,双重否定 !! 可以完成同样的任务并得到相同的结果。

var_dump(!!1, !!0, !!"test", !!"");

输出
布尔值 true

布尔值 false

布尔值 true

布尔值 false

祝你生活愉快。
uasenior at gmail dot com
4年前
<?

// 将布尔值作为字符串打印的某种方法

$b = true;

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

?>
匿名
10年前
v2.0版本中的拼写错误。
:-)

Hack v2.1

<?php

if( ! function_exists('boolval'))
{
/**
* 获取变量的布尔值
*
* @param mixed 将要转换为布尔值的标量值。
* @return boolean var 的布尔值。
*/
function boolval($var)
{
return !!
$var;
}
}

?>
To Top