将字符串'true'或'false'转换为整数'1'或'0'。

26 浏览
0 Comments

将字符串'true'或'false'转换为整数'1'或'0'。

我想将字符串变量'true'或'false'转换为整数'1'或'0'。

为了实现这一目标,我尝试了以下方法:

(int) (boolean) 'true' //得到1
(int) (boolean) 'false' //得到1,但我需要0

我知道可以使用数组来实现,例如array('false','true');

或使用if($myboolean=='true'){$int=1;}

但这种方式效率较低。

是否有另一种更高效的方式,类似于(int) (boolean) 'true'

我知道这个问题已经被问过了,但我还没有找到答案

0
0 Comments

'将字符串“true”或“false”转换为整数“1”或“0”的问题是由于字符串“false”为真值引起的。这就是为什么 (int) (boolean) "false" 返回1而不是0。如果您想从字符串中获取一个“false”布尔值,可以传递一个空字符串 (int) (boolean) "" 。更多信息请参见这里

这很有帮助,但不是一个解决方法,因为我有真或假的数据。'

问题的原因:字符串“false”被视为真值,导致将其转换为布尔值时返回1而不是0。

解决方法:如果想要将字符串“false”转换为整数0,可以传递一个空字符串。

0
0 Comments

问题的原因是,作者想将字符串'true'或'false'转换为整数'1'或'0',但是作者希望找到一种效率最高的方法来解决这个问题。作者感谢所有的回答,但只能选择一种认为是最有效的解决方法。

解决方法是使用三元运算符,将布尔值赋给整数变量。如果字符串变量$myboolean的值为'true',则将整数变量$my_int的值设为1,否则设为0。

代码如下所示:

int $my_int = $myboolean=='true' ? 1 : 0;

0
0 Comments

问题的原因是PHP中的字符串在没有值的情况下始终被解析为布尔值true。为了解决这个问题,可以使用filter_var()函数并设置FILTER_VALIDATE_BOOLEAN标志来将字符串转换为整数1或0。以下是解决方法的示例代码:

(int)filter_var('true', FILTER_VALIDATE_BOOLEAN);
(int)filter_var('false', FILTER_VALIDATE_BOOLEAN);

感谢Mortezapour的回答,我认为你的答案是最高效的。哇,这很酷,你可以使用过滤器来验证字符串是否为布尔值。

0