php字符串转换为布尔值,在PHP中将stringparsing为布尔值

我最近需要一个“松散的”布尔转换函数来处理string,比如你正在询问的string(等等)。 我发现了一些不同的方法,并提出了一套大量的testing数据来贯穿它们 。 没有什么东西符合我的需要,所以我写了自己的:

function loosely_cast_to_boolean($value) { if(is_array($value) || $value instanceof Countable) { return (boolean) count($value); } else if(is_string($value) || is_object($value) && method_exists($value, '__toString')) { $value = (string) $value; // see http://www.php.net/manual/en/filter.filters.validate.php#108218 // see https://bugs.php.net/bug.php?id=49510 $filtered = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); if(!is_null($filtered)) { return $filtered; } else { // "none" gets special treatment to be consistent with ini file behavior. // see documentation in php.ini for more information, in part it says: // "An empty string can be denoted by simply not writing anything after // the equal sign, or by using the None keyword". if(strtolower($value) === 'none') { $value = ''; } return (boolean) $value; } } else { return (boolean) $value; } }

请注意,对于既可数又可串可转换的对象,这将有利于string值的计数以确定真实性。 也就是说,如果$object instanceof Countable这个将会返回(boolean) count($object)而不pipe(string) $object的值。

您可以看到我使用的testing数据的行为以及其他几个函数的结果 。 这是很难从这个小iframe的结果,所以你可以查看脚本输出在一个完整的页面 ,而不是(该url是没有logging,所以这可能不会永远工作)。 如果这些链接有一天死了, 我也把代码放在pastebin上 。

什么“应该是真实的”和“不应该的”之间的界限是非常随意的。 我使用的数据是根据我的需求和美学偏好分类的,您可能会有所不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值