应该说明此函数如果其参数的_类型_为布尔值则返回 true。它不会将值转换为布尔类型,也不确定为什么这么多注释都关注如何执行此操作。
但是,如果您来到这里是为了寻找将值转换为布尔类型的解决方案,请使用以下方法
to_bool($x) { return (bool)$x; }
(PHP 4, PHP 5, PHP 7, PHP 8)
is_bool — 查找变量是否为布尔值
value
正在评估的变量。
示例 #1 is_bool() 示例
<?php
$a = false;
$b = 0;
// 由于 $a 是布尔值,它将返回 true
if (is_bool($a) === true) {
echo "是的,这是一个布尔值";
}
// 由于 $b 不是布尔值,它将返回 false
if (is_bool($b) === false) {
echo "不,这不是一个布尔值";
}
?>
应该说明此函数如果其参数的_类型_为布尔值则返回 true。它不会将值转换为布尔类型,也不确定为什么这么多注释都关注如何执行此操作。
但是,如果您来到这里是为了寻找将值转换为布尔类型的解决方案,请使用以下方法
to_bool($x) { return (bool)$x; }
检查变量是否为布尔值是一回事,评估变量的值是否表示布尔条件(true 或 false)是另一回事。
这是一个简单的函数,它检查接收到的变量在布尔等价性(不区分大小写)方面的状态。
<?php
/**
* 检查“布尔”条件 :)
*
* @param [mixed] $variable 可以是任何东西(字符串、布尔值、整数等)
* @return [boolean] 对于“1”、“true”、“on”和“yes”返回 TRUE
* 对于“0”、“false”、“off”和“no”返回 FALSE
* 否则返回 NULL。
*/
function is_enabled($variable)
{
if (!isset($variable)) return null;
return filter_var($variable, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
}
?>
当然,这是一种简化的方法,但在大多数情况下它都能正常工作。
并且,为了从正确的角度看待问题,这里有一个真正的函数,它执行了 Phill 公开的功能
<?php
/**
* 将 $variable 转换为布尔值(改编自 Phill 的回答)
*
* @param [mixed] $variable 可以是任何东西
* @return [boolean] 基于 Zend 引擎的解释返回 $variable 的布尔等价物
*/
function to_bool($variable)
{
return (bool)$variable;
}
?>
希望它能帮到某些人。编码愉快。