2013-03-12 4 views
0

Я пытаюсь сделать условное, если оператор, который проверяет, является ли значение переменных $ cat_id не равно или , то он должен echo my $ priceToShow переменная.PHP, если не равен или другой не равен

PHP

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

Зв Что за вопрос? –

+0

Что не работает? –

+0

Где проблема? То, что у вас хорошо выглядит. –

ответ

12

Если это может быть ни 19, ни 26, использовать и заявление:

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; 
} 

)

+1

имена переменных также чувствительны к регистру :) – splash21

+0

@ splash21 О, они есть. –

0

Это может быть лучше использовать !in_array(). Это сделает это быстрее и проще добавлять и удалять, когда/если необходимо

if (!in_array($cat_id, array('19', '26'))) 
{ 
    echo $priceToShow; 
} 
5

Это всегда возвращает истину

Вы должны использовать и конъюнкции

из для использования более чем 2 значения ! in_array()

Edit: Совершенно верно @Waygood

if (! ($v == 19 || $v == 26)) { 
    // do your thing 
} 
+2

demorgans theorum: negate and change operator = OR to! = AND, например. 19 OR 26 ->! = 19 AND! = 26 http://www.allaboutcircuits.com/vol_4/chpt_7/8.html – Waygood

Смежные вопросы