php x = 0或y = 1不工作if string

时间:2014-05-05 00:19:40

标签: php

if(strpos($drop, 'norm') !== false && $ruavalue === 0 || $ruavalue === 2) 
{
Echo "RUA: ";
$RUAresult = mysql_query("SELECT Answer FROM options"); 
echo '<form action="" method="post">';
echo "<input name=\"boss\" type=hidden value='".$_POST['tier_two']."'>";
echo "<input name=\"main\" type=hidden value='".$_COOKIE['ID_my_site']."'>";
echo '<input type="submit" name="ruasubmit" value="RUA!" />';
echo '</form>';
} else {
echo "You Have RUA'ed To This Boss";
}

当我使用

if(strpos($drop, 'norm') !== false && $ruavalue == 0)

它工作正常,但我需要使用

if(strpos($drop, 'norm') !== false && $ruavalue === 0 || $ruavalue === 2) 

并且无法正常工作

3 个答案:

答案 0 :(得分:3)

这个怎么样:

if(strpos($drop, 'norm') !== false && ($ruavalue === 0 || $ruavalue === 2)) 

答案 1 :(得分:2)

根据评论反馈,似乎是因为您使用的是comparison operator。您正在使用“相同于”运算符===。 “相同于”运算符不仅会比较变量的,还会比较类型

由于$ruavalue是值为"2"字符串,并且在您的if表达式中,您使用的是整数 {{ 1}},表达式将始终计算为2;字符串和整数永远不能彼此相同,但它们可以等于

您需要使用“等于”运算符false,或将变量与数字作为字符串进行比较:

==

operator precedence在这里也很重要。您当前的表达式将按此评估:

if (strpos($drop, 'norm') !== false && $ruavalue == 0 || $ruavalue == 2)
if (strpos($drop, 'norm') !== false && $ruavalue === '0' || $ruavalue === '2')

你可能想要的是:

   ((a && b) || c)
=> (ab || c)

换句话说,

   (a && (b || c))
=> (a && bc)

答案 2 :(得分:0)

试试这个:

if ((strpos($drop, 'norm') !== false) && (($ruavalue == 0) || ($ruavalue == 2)))