PHP中把字符串true/false转成boolean布尔型
- 2019 年 10 月 6 日
- 筆記
在PHP中,无法使用(bool)
或者settype()
函数把字符串的”true”和”false”转成布尔型。如果使用上述两种办法,会始终返回true。
<?php $string = 'true'; var_dump((bool) $string); $string = 'false'; var_dump((bool) $string); $string = 'true'; var_dump(settype($string, 'boolean')); $string = 'false'; var_dump(settype($string, 'boolean')); ?>
返回
bool(true) bool(true) bool(true) bool(true)
参考PHP官网文档,可自己定义一个函数解决:
//参考:https://www.php.net/manual/zh/function.boolval.php#116547 function is_true($val, $return_null=false){ $boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val ); return ( $boolval===null && !$return_null ? false : $boolval ); }