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" 

在这两种情况下,我期望没有回音。我缺少什么?

+0

对不起,我在描述中的意思是“多于一个”以匹配代码。 – Mazinfriki

+0

你实际需要什么输出? –

+0

当你说等于“多于一个”时,你的意思是字符串“多于一个”还是数字大于1? – simonv

我建议你,因为你处理整数以及字符串类型是$ 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

+0

你是对的,谢谢!我以为PHP会根据变量声明的类型来比较类型,所以在我的测试中,我没有尝试将0作为整数或“hello”作为字符串进行类型化,因为它们已经分别定义为整数和字符串。 – Mazinfriki

u能试试吗?

if (($var == 'more than one') || ($var > 0)) { 
    echo "var is: " . $var; 
} 
+0

当$ var = 0时,此代码将不起作用。我已经测试过它。 –

+0

是的,我也试过,但不起作用。它只适用于$ var是一个字符串。 – Mazinfriki

+0

奇怪的是,如果你分裂成两个句子(没有类型转换),它们都可以工作!当你在一个句子中使用两种不同的类型时,php看起来效果不好。 – Mazinfriki