php x=0或y=1不在if字符串中工作

php x=0或y=1不在if字符串中工作,php,Php,它工作正常,但我需要使用 if(strpos($drop, 'norm') !== false && $ruavalue == 0) 而且它工作不正常这是怎么回事: if(strpos($drop, 'norm') !== false && $ruavalue === 0 || $ruavalue === 2) 试试这个: if(strpos($drop, 'norm') !== false && ($ruavalue === 0 || $r

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

if(strpos($drop, 'norm') !== false && $ruavalue == 0)
而且它工作不正常

这是怎么回事:

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

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

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

因为
$ruavalue
是一个值字符串
“2”
,在
表达式中,如果您使用的是整数
2
,则表达式的计算结果将始终为
false
;字符串和整数永远不能彼此相同,但它们可以彼此相等

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

if ((strpos($drop, 'norm') !== false) && (($ruavalue == 0) || ($ruavalue == 2)))
这一点在这里也很重要。当前表达式的计算结果如下所示:

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)

这还没有修复它:(它仍然显示您已经向这个BOSS请求过了,但还没有修复它:(它仍然显示您已经向这个BOSS请求过了,直到相同的消息,$drop和$ruavalue的值是多少?$drop=string(9)“soo10norm”和$ruavalue=string(1)“2”。请参见
&
|
。表达式的计算结果是
((a&&b)| | c)
。可以使用括号控制表达式的求值方式:
(a&&b | | c))
。我尝试了下面的两个建议,但这并没有解决我的问题
$drop
$ruavalue
的值是什么?还有,数据库调用的意义是什么?你从不使用它做任何事。这是从mysql数据库中提取的值,重点是检查用户在RUA上的状态0=无RUA,1=正常RUA 2=英雄RUA和3=正常和英雄RUA
var_dump($ruavalue)
请。谢谢您,这已经用if(strpos($drop,'norm')!==false&&$ruavalue==“0”| |$ruavalue==“2”)解决了我的问题
   (a && (b || c))
=> (a && bc)
if (strpos($drop, 'norm') !== false && ($ruavalue == 0 || $ruavalue == 2))