应该说明此函数如果其参数的_类型_为布尔值,则返回 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 [混合] $variable 可以是任何东西(字符串、布尔值、整数等)
* @return [布尔值] 对于 "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 [混合] $variable 可以是任何东西
* @return [布尔值] 返回基于 Zend 引擎解释的 $variable 的布尔值等效项
*/
function to_bool($variable)
{
return (bool)$variable;
}
?>
希望对某些人有所帮助。编码愉快。