如果促销代码为“MAG20”且产品代码为“99”或产品代码为“77”或产品代码为“44”,则执行某些操作。
(促销代码相同,产品列表也相同,但很大)
if ($promocode=="MAG20" && $productID=="44" && || $productID=="77") {
// wahay! run function
} else {
// no coupon for you
}
我希望如果PROMO MAG20和代码是99或代码是77将工作&& || - 还有一种更好的方法可以做到这一点,因为支架将是30多种产品。
答案 0 :(得分:3)
如果您的产品太多,那么最好使用带有产品的sql表及其相应的优惠券代码。这将是一个更好,更清洁的方式。在单个条件语句上有30个条件不仅会降低您的应用程序速度,而且非常难以管理。
因此,您可以拥有优惠券表和产品表以及coupons_to_products表,并查看决赛桌以了解优惠券是否真的有效。
答案 1 :(得分:3)
你应该用你的所有名字制作一个数组
$productIDs = array(10, 20, 30);
然后是if函数
if($promocode== "MAG20" && in_array($productID, $productIDs))
所以你有1个ID列表和一个简短的if语句
答案 2 :(得分:1)
如果有效的产品ID会更改,或者它们很多,请使用数组
$validProductIDs = array(44, 77, 104, 204); //Up to you how you populate this array
if ($promocode == "MAG20" && in_array($productID, $validProductIDs)) {
// wahay! run function
} else {
// no coupon for you
}
答案 3 :(得分:0)
使用此:
if ($promocode=="MAG20" and ($productID=="44" or $productID=="77"))
// wahay! run function
} else {
// no coupon for you
}
答案 4 :(得分:0)
我会这样做:
if ($promocode=="MAG20" && ($productID=="44" || $productID=="77"))
答案 5 :(得分:0)
查看array数据类型。根据您的阵列设计,您可以使用isset(),/ array_key_exists()或in_array()进行检查。
答案 6 :(得分:-1)
不确定为什么认为连续的&& ||
应该有效。这应该是什么意思?
无论如何,你想要的是:
$promocode=="MAG20" && ($productID=="44" || $productID=="77")
您必须对$productID=="44" || $productID=="77"
进行分组,否则,因为AND具有更高的优先级,它将被评估为
($promocode=="MAG20" && $productID=="44") || $productID=="77"
如果你需要测试很多ID,我建议使用某种查找表:
$productIDs = array('44', '77', ...);
$productIDs = array_flip($productIDs);
if($promocode=="MAG20" && isset($productIDs[$productID])) {
}