1

我正在尝试执行条件 if 语句来检查变量$cat_ID的值是否不等于1926,然后它应该回显我的$priceToShow变量。

PHP

if(($cat_id != '19') || ($cat_id !='26')){ 
    echo $priceToShow;
}
4

3 回答 3

14

如果它既不能是 19 也不能是 26,请使用 and 语句:

if(($cat_ID != '19') && ($cat_id !='26')){ 
    echo $priceToShow;
}

如果您有很多值要检查,请使用in_array

$bad_values = array(19, 26, 54);
if (!in_array($cat_ID, $bad_values)) {
    echo $priceToShow;
}

(在这种情况下,严格比较是关闭的;您应该始终将数据转换为预期的类型,然后使用严格比较:

$bad_values = array(19, 26, 54);
if (!in_array(intval($cat_ID), $bad_values, true)) {
    echo $priceToShow;
}

)

于 2013-03-12T12:49:20.487 回答
7

这将始终返回 true

您需要使用 AND 连词

超过 2 个值使用 ! in_array()

编辑:绝对正确@Waygood

if ( ! ( $v == 19 || $v == 26 ) ) {
  // do your thing
}
于 2013-03-12T12:50:28.923 回答
0

使用可能会更好!in_array()。这将使在需要时/如果需要时添加和删除变得更快、更简单

if (!in_array($cat_id, array('19', '26')))
{
  echo $priceToShow;
}
于 2013-03-12T12:50:12.517 回答