PHP如果有什么东西那么东西呢?

时间:2011-11-14 11:11:45

标签: php if-statement

如果促销代码为“MAG20”且产品代码为“99”或产品代码为“77”或产品代码为“44”,则执行某些操作。

(促销代码相同,产品列表也相同,但很大)

if ($promocode=="MAG20" && $productID=="44"  && || $productID=="77") {

// wahay! run function

} else {

// no coupon for you

}

我希望如果PROMO MAG20和代码是99或代码是77将工作&& || - 还有一种更好的方法可以做到这一点,因为支架将是30多种产品。

7 个答案:

答案 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])) {

}