PHP运算符失败

时间:2015-11-23 08:57:13

标签: php html mysqli operators

我正在使用此代码来选择和比较来自2个独立MySQLi表的日期和信息。代码应生成"discount_amount" IF,输入的折扣代码与数据库中的折扣代码相同,或者数据库中的折扣代码设置为"open"。即使设置了日期并且代码设置为"open",如果我手动将discount_amount输入"open",我只会获得"$design_discount_code"

if($discount_code == $design_discount_code or $discount_code == 'open' && $date >= $discount_start_date && $date <= $discount_end_date){
    $design_price_total = $discount_amount;
    $discount = 'yes';
} else {
    $design_price_total = $original_price;
    $discount = 'no';
}

我还试图将PHP运算符更改为||xor而没有更好的结果。当我输入"open"并且不是自动输入时,为什么只返回“是”的任何想法?

1 个答案:

答案 0 :(得分:1)

您似乎认为or的优先级高于and。这是不正确的。您应该使用括号表示or检查是and条件之一。像这样:

if(($discount_code == $design_discount_code or $discount_code == 'open') and $date >= $discount_start_date and $date <= $discount_end_date)

另请注意混合英语和/或符号&amp;&amp; / ||不是一个好主意。