如何将字符串转换为布尔值?
$string = 'false';
$test_mode_mail = settype($string, 'boolean');
var_dump($test_mode_mail);
if($test_mode_mail) echo 'test mode is on.';
它返回,
布尔真
但它应该是布尔值为false。
如何将字符串转换为布尔值?
$string = 'false';
$test_mode_mail = settype($string, 'boolean');
var_dump($test_mode_mail);
if($test_mode_mail) echo 'test mode is on.';
它返回,
布尔真
但它应该是布尔值为false。
当前回答
你也可以使用settype方法!
$string = 'false';
$boolean = settype($string,"boolean");
var_dump($boolean); //see 0 or 1
其他回答
function stringToBool($string){
return ( mb_strtoupper( trim( $string)) === mb_strtoupper ("true")) ? TRUE : FALSE;
}
or
function stringToBool($string) {
return filter_var($string, FILTER_VALIDATE_BOOLEAN);
}
我对wordpress shortcode属性感到困惑,我决定写一个自定义函数来处理所有可能性。也许对某些人有用:
function stringToBool($str){
if($str === 'true' || $str === 'TRUE' || $str === 'True' || $str === 'on' || $str === 'On' || $str === 'ON'){
$str = true;
}else{
$str = false;
}
return $str;
}
stringToBool($atts['onOrNot']);
$string = 'false';
$test_mode_mail = $string === 'false' ? false : true;
var_dump($test_mode_mail);
if($test_mode_mail) echo 'test mode is on.';
你必须手动操作
一种简单的方法是检查您认为为真值的数组。
$wannabebool = "false";
$isTrue = ["true",1,"yes","ok","wahr"];
$bool = in_array(strtolower($wannabebool),$isTrue);
你应该能够使用(bool)强制转换为布尔型,但我不确定没有检查这是否适用于字符串“true”和“false”。
不过这可能值得一试
$myBool = (bool)"False";
if ($myBool) {
//do something
}
值得注意的是,当将以下内容放入其中时,将计算为布尔值False
if()
布尔值FALSE本身 整数0(零) 浮点数0.0(零) 空字符串和字符串"0" 零元素数组 一个没有成员变量的对象(仅适用于PHP 4) 特殊类型NULL(包括未设置的变量) 从空标记创建的SimpleXML对象
其他的都是真。
如下所述: http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting