今天我在玩PHP,我发现字符串值"true"和"false"在某种情况下不能正确解析为布尔值,例如考虑以下函数:

function isBoolean($value) {
   if ($value) {
      return true;
   } else {
      return false;
   }
}

如果我执行:

isBoolean("true") // Returns true
isBoolean("") // Returns false
isBoolean("false") // Returns true, instead of false
isBoolean("asd") // Returns true, instead of false

它似乎只对"1"和"0"值起作用:

isBoolean("1") // Returns true
isBoolean("0") // Returns false

PHP中是否有本机函数将"真"和"假"字符串解析为布尔值?

推荐答案

有一种原生的PHP方法,它使用PHP的filter_var方法:

$bool = filter_var($value, FILTER_VALIDATE_BOOLEAN);

根据PHP's manual:

对于"1"、"TRUE"、"on"和"yes",返回TRUE.否则返回FALSE.

如果设置了FILTER_NULL_ON_FAILURE,则仅对"0"、"FALSE"、"off"、"no"和""返回FALSE,对所有非布尔值返回NULL.

Php相关问答推荐

根据WooCommerce产品类别自定义数量输入步骤

邮箱打开跟踪器不工作时发送邮件使用laravel调度程序

根据特定运输类别增加WooCommerce购物车总重量

与会者在WooCommerce中按购物车项目数量自定义 checkout 字段

如何确保所有语言文件都使用Laravel中的新密钥进行更新?

无法使用php IMAP从Gmail获取收件箱

根据选定的字段值显示或隐藏WooCommerce注册字段

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

模仿GUZLE中的curl 工作脚本(分块数据和二进制上传一起)

未定义的类型';PDF';在Laravel 8

WooCommerce 中一件免费产品的数量折扣

.htaccess 重写规则问题

如果 Select 的县不是store 所在的县,如何隐藏本地自提?

Google Drive API:为什么使用服务帐户在下载文件时会将我带到 Google Drive 登录窗口?

在 WooCommerce wc_get_products 函数中处理自定义分类法

Laravel路由中的符号在slug中会创建额外的斜杠

带有 nginx 的 Symfony 不提供 .js 和 .css 文件

Laravel 模型将日期保存为空

自定义错误页面不适用于 Apache 和 nginx 设置的 .htaccess

为什么 ECDSA 384 签名验证在 GO 中失败,但在 PHP 中却没有?