如何将字符串转换为布尔 php
如何将字符串转换为?boolean
$string = 'false';
$test_mode_mail = settype($string, 'boolean');
var_dump($test_mode_mail);
if($test_mode_mail) echo 'test mode is on.';
它返回,
布尔真
但它应该是.boolean false
如何将字符串转换为?boolean
$string = 'false';
$test_mode_mail = settype($string, 'boolean');
var_dump($test_mode_mail);
if($test_mode_mail) echo 'test mode is on.';
它返回,
布尔真
但它应该是.boolean false
此方法由@lauthiamkok在评论中发布。我在这里发布它作为答案,以引起更多关注。
根据您的需要,应考虑与标志一起使用。filter_var()
FILTER_VALIDATE_BOOLEAN
filter_var( true, FILTER_VALIDATE_BOOLEAN); // true
filter_var( 'true', FILTER_VALIDATE_BOOLEAN); // true
filter_var( 1, FILTER_VALIDATE_BOOLEAN); // true
filter_var( '1', FILTER_VALIDATE_BOOLEAN); // true
filter_var( 'on', FILTER_VALIDATE_BOOLEAN); // true
filter_var( 'yes', FILTER_VALIDATE_BOOLEAN); // true
filter_var( false, FILTER_VALIDATE_BOOLEAN); // false
filter_var( 'false', FILTER_VALIDATE_BOOLEAN); // false
filter_var( 0, FILTER_VALIDATE_BOOLEAN); // false
filter_var( '0', FILTER_VALIDATE_BOOLEAN); // false
filter_var( 'off', FILTER_VALIDATE_BOOLEAN); // false
filter_var( 'no', FILTER_VALIDATE_BOOLEAN); // false
filter_var('asdfasdf', FILTER_VALIDATE_BOOLEAN); // false
filter_var( '', FILTER_VALIDATE_BOOLEAN); // false
filter_var( null, FILTER_VALIDATE_BOOLEAN); // false
字符串的计算结果始终为布尔 true,除非它们具有 PHP 认为为“空”的值(取自文档中的空
):
""
(空字符串);"0"
(0 作为字符串)如果需要根据字符串的文本值设置布尔值,则需要检查该值是否存在。
$test_mode_mail = $string === 'true'? true: false;
编辑:上面的代码是为了清晰理解。在实际使用中,以下代码可能更合适:
$test_mode_mail = ($string === 'true');
或者使用该函数可能会涵盖更多布尔值:filter_var
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var
涵盖整个值范围,包括真值 、 和 。有关更多详细信息,请参阅此处。"true"
"1"
"yes"
"on"