这个问题很简单,但我不确定解决问题的最佳方法是什么。
如果变量包含数字,如果$some_var
确实是一个,我怎样才能确保if语句只返回true?
答案 0 :(得分:11)
答案 1 :(得分:9)
数字1是“true”的快捷方式。为了指定它必须实际为true,您需要使用三重等于运算符。这确保它匹配值和类型(分别为1和整数)。
$some_var = 1;
$other_var = "1";
$some_var === 1; // True
$other_var === 1; // False
答案 2 :(得分:4)
if($some_var === 1) //checks also type
答案 3 :(得分:3)
理想情况下,您应该使用===,但其缺点是它将检查值和类型。如果要将整数检查为1,这应该没问题。但由于1也可能是字符串值(表单提交的数据总是字符串),因此===比较可能会失败。试试这个:
if ($my_var == 1 && is_numeric($my_var)) {
echo 'My condition is true. Woo hoo!';
}