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

时间:2017-10-22 04:23:26

标签: php string boolean

我想将String变量'true'或'false'转换为int'1'或'0' 要做到这一点,我正在尝试这样

{ "content":[ { "memberId":1, "name":"bob", "phone1": "450", "phone2": "1", "email": "test" }, { "memberId":2, "name":"robert" "phone1": "2323", "phone2": "2", "email": "test" } ], "last":true, "totalElements":27, "totalPages":1, "sort":null, "numberOfElements":27, "first":true, "size":100, "number":0 } //给出1 (int) (boolean) 'true' //给出1但我需要0

我现在可以使用像(int) (boolean) 'false'这样的数组 或使用array('false','true'); 但这种方式效率较低。 是否有另一种更有效的方法,如if($myboolean=='true'){$int=1;}

我知道这个问题已被问到。但我没有找到答案

7 个答案:

答案 0 :(得分:4)

除非PHP具有被认为是“空”的值,否则字符串总是计算为布尔值true。

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

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

答案 1 :(得分:2)

为什么不使用一元运算符

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

答案 2 :(得分:1)

字符串" false"是 truthy 。这就是(int) (boolean) "false"返回1而不是0的原因。如果您想从字符串中获取false布尔值,则可以传递空字符串(int) (boolean) ""。更多信息here

答案 3 :(得分:0)

PHP

$int = 5 - strlen($myboolean);

// 5 - strlen('true')  => 1
// 5 - strlen('false') => 0

JAVASCRIPT



// ---- fonction ----

function b2i(b){return 5 - b.length}



//------------ debug -----------

for(b of ['true','True','TRUE','false','False','FALSE'])
{
  console.log("b2i('"+b+"') = ", b2i(b));
}




答案 4 :(得分:0)

$variable = true;

if ($variable) {
     $convert = 1;
}
else {
    $convert = 0;
}

echo $convert

答案 5 :(得分:0)

试试这个:

echo (int) (boolean) '';

答案 6 :(得分:-1)

通常只有$Int = (int)$Boolean才能正常工作,或者您只需在变量前加一个+,就像这样:

$Boolean = true; 

var_dump(+$Boolean);

ouputs: int(1);

另外,(int)(bool)'true'也应该起作用