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)
并且无法正常工作
答案 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)))