比较同一变量的值时出错

时间:2015-04-19 20:29:32

标签: php

我在验证方面遇到了一些问题。我这里有这个代码片段,它通过这种方式工作:如果pizza_size变量未在查询字符串中设置且产品类别的ID为1(对应于比萨饼)或已设置但{{1} } value不等于pizza_sizesmallmedium这需要返回页面big,并显示未选择大小的消息。我正在尝试:

products.php

问题是这不起作用。即使if(!isset($_GET['pizza_size']) || $_GET['pizza_size'] != "small" || $_GET['pizza_size'] != "medium" || $_GET['pizza_size'] != "big" && $category_id == 1) { redirect_to('products.php?message=no-size-informed'); } else //Add the product 对应pizza_sizesmallmedium,我也会收到错误消息。但是,如果我只使用一次比较,这很有效,例如:

big

但我需要验证3种尺寸。如何使用所有三个可能的变量进行此验证?谢谢!

2 个答案:

答案 0 :(得分:2)

if(($category_id == 1)
   && !(isset($_GET['pizza_size']) && in_array($_GET['pizza_size'], array('small', 'medium', 'big')))
) {
    redirect_to('products.php?mesage=no-size-informed');
}
else {
   // Add the product
}

答案 1 :(得分:1)

你必须这样做:

if(($category_id == 1)
   && (isset($_GET['pizza_size'] && !in_array($_GET['pizza_size'], array('small', 'medium', 'big')) || !isset($_GET['pizza_size']
) {
    redirect_to('products.php?mesage=no-size-informed');
}