IF语句与两个条件为相同的变量
我想写一个if语句来检查变量是否完成两个给定条件之一。IF语句与两个条件为相同的变量
我试图评价是:“如果变量是大于0或变量等于‘一多’,然后打印出它的价值
这里就是我有:
$var="more than three";
if (($var == 'more than one') || ($var > '0')) {
echo "var is: " . $var;
}
// produces "var is more than three"
$var=0;
if (($var == 'more than one') || ($var > '0')) {
echo "var is: " . $var;
}
// produces "var is 0"
在这两种情况下,我期望没有回音。我缺少什么?
我建议你,因为你处理整数以及字符串类型是$ var在这里使用强制类型转换。
试试这个:
$var = "more than three";
if (((string)$var == 'more than one') || ((int)$var > 0)) {
echo "var is: " . $var;
}
$var = 0;
if (((string)$var == 'more than one') || ((int)$var > 0)) {
echo "var is: " . $var;
}
您可以使用此作为参考:PHP Typecasting
你是对的,谢谢!我以为PHP会根据变量声明的类型来比较类型,所以在我的测试中,我没有尝试将0作为整数或“hello”作为字符串进行类型化,因为它们已经分别定义为整数和字符串。 – Mazinfriki
u能试试吗?
if (($var == 'more than one') || ($var > 0)) {
echo "var is: " . $var;
}
当$ var = 0时,此代码将不起作用。我已经测试过它。 –
是的,我也试过,但不起作用。它只适用于$ var是一个字符串。 – Mazinfriki
奇怪的是,如果你分裂成两个句子(没有类型转换),它们都可以工作!当你在一个句子中使用两种不同的类型时,php看起来效果不好。 – Mazinfriki
对不起,我在描述中的意思是“多于一个”以匹配代码。 – Mazinfriki
你实际需要什么输出? –
当你说等于“多于一个”时,你的意思是字符串“多于一个”还是数字大于1? – simonv