我正在尝试让下面的代码正确计算,但它没有给我正确的结果 - 我错过了一些明显的东西吗?
通过XML抓取信息(一切正常) - 目前foreach循环经过两次。如果变量revrat设置为3,2或1,则它会添加到$ negrat计数器(它当前正在执行) - 但是即使revrat是3,2或1,它仍然被添加到$ posrat计数器,尽管if语句表示只应该将4或5添加到该计数器。
我尝试过有和没有语音标记 - 得到相同的答案。
感谢您的期待!
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;
}
答案 0 :(得分:2)
单个=设置值,==测试值是否相等。所以你的if语句:
if($revrat = "4" or $revrat = "5")
只是测试它可以将$ revrat设置为等于4或5.两者都返回true,因此if语句为true。如果您将其更改为:
if($revrat == "4" or $revrat == "5")
然后它将检查$ revrat的当前值是否等于4或5并返回您正在寻找的响应。
答案 1 :(得分:0)
你的if运算符包含=
(assign)而不是==
(等于),将代码更改为:
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;
}