PHP是否有内置函数采用布尔值并返回其等价整数? 0表示FALSE,1表示TRUE?
当然你可以轻松创建一个函数来做到这一点,我只是问一下PHP内部是否有内置函数。我已经尝试intval()
并将其投射到(int)
但是它们没有用,它们在TRUE和FALSE两种情况下都返回0。
编辑:问题是它不是真正的布尔值,它是一个字符串“false”,“true”,php没有检测到它传递了一个布尔值的jquery帖子。问题解决了,谢谢!
答案 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),然后简单地转换为整数。
(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)