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

sat*_*dos 5 php string boolean

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

为了实现这一点,我正在尝试这样

(int) (boolean) 'true' //gives 1
(int) (boolean) 'false' //gives 1 but i need 0 here
Run Code Online (Sandbox Code Playgroud)

我现在可以像使用数组一样array('false','true'); 或使用if($myboolean=='true'){$int=1;}

但这种方式效率较低。

还有其他更有效的方法(int) (boolean) 'true'吗?

我知道有人问过这个问题。但我还没有找到答案

Far*_*our 9

字符串总是计算为布尔真,除非它们的值被 PHP 视为“空”。

根据您的需要,您应该考虑将 filter_var() 与 FILTER_VALIDATE_BOOLEAN 标志一起使用。

(int)filter_var('true', FILTER_VALIDATE_BOOLEAN);
(int)filter_var('false', FILTER_VALIDATE_BOOLEAN);
Run Code Online (Sandbox Code Playgroud)


Rav*_*avi 2

为什么不使用一元运算符

int $my_int = $myboolean=='true' ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)