将布尔值转换为整数值php

时间:2013-11-19 14:35:38

标签: php integer boolean type-conversion

PHP是否有内置函数采用布尔值并返回其等价整数? 0表示FALSE,1表示TRUE? 当然你可以轻松创建一个函数来做到这一点,我只是问一下PHP内部是否有内置函数。我已经尝试intval()并将其投射到(int)但是它们没有用,它们在TRUE和FALSE两种情况下都返回0。

编辑:问题是它不是真正的布尔值,它是一个字符串“false”,“true”,php没有检测到它传递了一个布尔值的jquery帖子。问题解决了,谢谢!

7 个答案:

答案 0 :(得分:60)

http://www.php.net/manual/en/language.types.integer.php

通常情况下,只需$myInt = (int)$myBoolean即可,您能否以其他方式向我们展示您的代码?

答案 1 :(得分:15)

只需添加" +"在你的变量之前:

$myBool = true; 

var_dump(+$myBool);

ouputs: int(1);

答案 2 :(得分:4)

如果您从JSON I.E.获得价值。通过AJAX POST,该值将以字符串形式出现(如您所见)。解决这个问题的方法是比较true / false字符串,然后将bool转换为int




  $ requestBool = $ _REQUEST ['bool_value']; //这是'true'或'false'

 $ myInt =(int)($ requestBool ==='true');
 echo $ myInt;
&# xA; //返回:0或1
  



答案 3 :(得分:3)

如果您不确定数据类型,请参阅下面的示例,它适用于字符串,整数和布尔值。

<?php

$options = [ TRUE, FALSE, 'true', 'false', 1, 0, '1', '0', 'on', 'off', 'yes', 'no' ];

foreach ( $options as $option ) {
    $bool = filter_var( $option, FILTER_VALIDATE_BOOLEAN ); // TRUE or FALSE
    print (int) $bool . ' '; // 1 or 0
} 
// Outputs: 1 0 1 0 1 0 1 0 1 0 1 0 

?>

filter_var($ var,FILTER_VALIDATE_BOOLEAN)将返回bool(true)或bool(false),然后简单地转换为整数。

filter_var()

(PHP 5&gt; = 5.2.0,PHP 7)

filter_var - 使用指定的过滤器过滤变量

答案 4 :(得分:0)

echo (int)true;
echo '<br>';
echo (int)false;
echo '<br>';
echo intval(true);
echo '<br>';
echo intval(false);
echo '<br>';
echo true + true;

答案 5 :(得分:0)

您可以一次性完成多次演员:

$isTest = 'true';

(int)(bool)$isTest

echo $isTest; // this outputs 1

答案 6 :(得分:-3)

使用类型转换(bool):

var_dump((bool) 1);         // bool(true)
var_dump((bool) 0);         // bool(false)