Проверьте, отличается ли переменная от нескольких значений - PullRequest
3 голосов
/ 21 августа 2010

Если я хочу выполнить действие, если php, если переменная не равна 0,1 или 2, как бы я это сделал?мое заявление if не работает.Спасибо!

Ответы [ 3 ]

7 голосов
/ 21 августа 2010
if (($var != 0) && ($var != 1) && ($var != 2)) {
    //...
}

или ...

if (!in_array($var, array(0, 1, 2))) { /* ... */ }

См. логические операторы .

5 голосов
/ 21 августа 2010

Самый простой способ:

if ($x != 0 && $x != 1 && $x != 2)
{
    // take action!
}

Если вы знаете, что ваша переменная имеет тип int, вы также можете сделать следующее:

if ($x < 0 || $x > 2)
{
    // take action!
}
0 голосов
/ 21 августа 2010

Используйте оператор && для цепочки тестов и проверки неравенства с помощью !==, который проверяет значения типа и :

if( $n !== 0 && $n !== 1 && $n !== 2 ) {
     // it's not any of those values.
}

Оператор == будет приводить значения, поэтому выполняются все следующие условия:

  • 0 == 'foo'
  • 99 == «99 шаров»
  • true == 1
  • false == ''

и так далее. См. операторы сравнения для получения дополнительной информации о == против ===. Также проверьте таблицу «Сравнение с различными типами», чтобы лучше понять, как приводятся типы, если вы сравниваете не числа. Только вы можете определить, будет ли if( $n < 0 || $n > 2 ) соответствовать вашим потребностям. (Ну, мы можем помочь, но нам нужно больше деталей.)

См. логические операторы , чтобы узнать больше о && и ||.

...