PHP 如果变量 = a 而不是 = b

PHP If variable = a and not = b

php 7.3.18

mysql 5.7.30

这里是相关的代码,它立即失败,所以我很感激它被更正。

第一个'if'没问题,但问题出在第2个+第3个

$targetcatid2、$targetcatid3、$targetweight2、$targetweight3 已正确声明。

目的是如果一个产品属于Category2而不属于Category3那么重量就会变成Weight2 反之亦然。

$row2=mysqli_fetch_array($select2);

if($row2['category_id']== $targetcatid){
    $row['product_weight']= $targetweight;
}

if($row2['category_id']== $targetcatid2 && !== $targetcatid3){
    $row['product_weight']= $targetweight2;
}

if($row2['category_id']== $targetcatid3 && !== $targetcatid2){
    $row['product_weight']= $targetweight3;
}

我最近的努力是:

if($row2['category_id']== $targetcatid){ $row['product_weight']= $targetweight; }

if($row2['category_id']== $targetcatid2 && $row2['category_id']!== $targetcatid3){ $row['product_weight']= $targetweight2; }

elseif($row2['category_id']== $targetcatid3 && $row2['category_id']!== $targetcatid2){ $row['product_weight']= $targetweight3; }

elseif($row2['category_id']== $targetcatid2 && $row2['category_id']== $targetcatid3){ $row['product_weight']= $targetweight3; }

我发现新条件不起作用,即使单独使用也是如此。 但是不明白为什么:

elseif($row2['category_id'] == $targetcatid2 && $row2['category_id'] == $targetcatid3){ $row['product_weight'] = $targetweight3; }

您没有正确理解 && 运算符。

而不是这个

if($row2['category_id']== $targetcatid2 && !== $targetcatid3){

你应该分别比较条件。

if($row2['category_id']== $targetcatid2 && $row2['category_id'] !== $targetcatid3){