Php foreach/计数器输出的数字不正确
我试图让下面的代码正确计数,但它没有给我正确的结果-我是否遗漏了一些明显的东西 信息是通过XML获取的(一切正常)-目前foreach循环经过两次。如果变量revrat设置为3,2或1,则它将添加到$negrat计数器(当前是这样的)-但是,即使revrat为3,2或1,它仍将添加到$posrat计数器,尽管If语句指示添加到该计数器只应为4或5 我试过了,不管有没有语音标记,都得到了相同的答案 谢谢你的关注Php foreach/计数器输出的数字不正确,php,Php,我试图让下面的代码正确计数,但它没有给我正确的结果-我是否遗漏了一些明显的东西 信息是通过XML获取的(一切正常)-目前foreach循环经过两次。如果变量revrat设置为3,2或1,则它将添加到$negrat计数器(当前是这样的)-但是,即使revrat为3,2或1,它仍将添加到$posrat计数器,尽管If语句指示添加到该计数器只应为4或5 我试过了,不管有没有语音标记,都得到了相同的答案 谢谢你的关注 foreach($xml->FEEDBACK as $value) {
foreach($xml->FEEDBACK as $value)
{
$feedbackitem = $value->PRODUCTCODE;
if ($feedbackitem == $skuvalue):
$i2++;
$revrat = 3;
if($revrat = "1" or $revrat = "2" or $revrat = "3") :
$negrat++;
endif;
if($revrat = "4" or $revrat = "5"):
$posrat++;
endif;
endif;
}
单个=设置值,==测试值是否相等。因此,您的if声明:
if($revrat = "4" or $revrat = "5")
正在测试它是否可以将$revrat设置为4或5。两者都返回true,因此if语句为true。如果将其更改为:
if($revrat == "4" or $revrat == "5")
然后,它将检查$revrat的当前值是否等于4或5,并返回您正在查找的响应。您的if运算符包含
=
(赋值)而不是=
(等于)将您的代码更改为如下所示:
foreach($xml->FEEDBACK as $value)
{
$feedbackitem = $value->PRODUCTCODE;
if ($feedbackitem == $skuvalue):
$i2++;
$revrat = 3;
if($revrat == "1" or $revrat == "2" or $revrat == "3") :
$negrat++;
endif;
if($revrat == "4" or $revrat == "5"):
$posrat++;
endif;
endif;
}
查找
$a=1
和$a==1
之间的差异。从技术上讲,=
运算符返回正在设置的值;因此,if($x=0)
将返回false。