如何将字符串转换为boolean?
boolean
$string = 'false'; $test_mode_mail = settype($string, 'boolean'); var_dump($test_mode_mail); if($test_mode_mail) echo 'test mode is on.';
它返回
布尔值true
但这应该是boolean false。
boolean false
除非字符串的值被PHP视为“空”(从的文档中获取empty),否则字符串始终为布尔值true :
empty
""
"0"
如果您需要根据字符串的文本值设置布尔值,则需要检查该值是否存在。
$test_mode_mail = $string === 'true'? true: false;
编辑:上面的代码旨在使理解更加清晰。在实际使用中,以下代码可能更合适:
$test_mode_mail = ($string === 'true');
或者使用该filter_var功能可能会覆盖更多的布尔值:
filter_var
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var覆盖整个范围的值,包括truthy值"true","1","yes"和"on"。
"true"
"1"
"yes"
"on"