一尘不染

如何将字符串转换为布尔PHP

php

如何将字符串转换为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


阅读 386

收藏
2020-05-29

共1个答案

一尘不染

除非字符串的值被PHP视为“空”(从的文档中获取empty),否则字符串始终为布尔值true

  1. "" (一个空字符串);
  2. "0" (0作为字符串)

如果您需要根据字符串的文本值设置布尔值,则需要检查该值是否存在。

$test_mode_mail = $string === 'true'? true: false;

编辑:上面的代码旨在使理解更加清晰。在实际使用中,以下代码可能更合适:

$test_mode_mail = ($string === 'true');

或者使用该filter_var功能可能会覆盖更多的布尔值:

filter_var($string, FILTER_VALIDATE_BOOLEAN);

filter_var覆盖整个范围的值,包括truthy值"true""1""yes""on"

2020-05-29