2012-04-13 3 views
0

У меня есть текстовое поле, которое я использую для выполнения вычислений с использованием кода, введенного в него. Этот код будет иметь либо префикс, либо суффикс, добавленный к нему. Моя проблема заключается в том, что в одном коде правила префикса и суффикса будут сталкиваться и вызывать оба действия, когда я только хочу, чтобы действие префикса произошло. Вот код:Операторы PHP IF, связанные с несколькими правилами

//get suffix and prefix from input box 
$suffix = $inputbox[strlen($inputbox)-1]; 
$prefix = $inputbox[0]; 

if($inputbox!="" && $suffix=="L" or $suffix=="P" or $suffix="Y" or $suffix=="T") 
{ 
//do this 
} 

if($inputbox!="" && $inputbox=="NT") 
{ 
//do that 
} 

С кодом, как это, скрипт делает так, потому что поле ввода является NT, а также имеет суффикс T. То, что я хочу, чтобы игнорировать первое правило, или поставьте оператор в первом правиле, чтобы сказать, что он должен работать только в том случае, если суффикс равен T, а префикс - не N.

Я знаю, что есть простой способ сделать это, но это почти 1 час, и я хочу закончить это раньше Я ухожу на кровать!

+0

Я противопоставляю нижестоящий элемент с помощью upvote muahaha, мощность для upvoters. удачи ~ –

+0

Спасибо человек. Я никогда не занимался программированием раньше и не учусь, когда я иду. :/ – Ian

ответ

2

Поэтому переключите заказ и используйте else. Кроме того, у вас есть избыточное правило, которое я удалил. Кроме того, ваш && имеет более высокий приоритет, чем ваш or s; но это тоже не нужно. Вы также смешали задание с условием. (Может быть, немного отдохнуть?)

// Get suffix and prefix from input box 
$suffix = $inputbox[strlen($inputbox)-1]; 
$prefix = $inputbox[0]; 

if($inputbox == "NT") { 
    //do that 
} elseif($suffix == "L" or $suffix == "P" or $suffix == "Y" or $suffix == "T") { 
    //do this 
} 
+0

Спасибо! Использовал это, и теперь он работает. Я первый кодер и всегда использовал HTML и CSS, поэтому PHP совершенно не знаком со мной. Я знаю, что мой код, вероятно, не самый большой, но я учусь, когда я иду. Что означает смешение задания с условием? :/ – Ian

+0

@IanNuttall: У вас был '=' смешанный с '=='. – Ryan

0
$suffix = $inputbox[strlen($inputbox)-1]; 
$prefix = $inputbox[0]; 

if($suffix == 'T' and $prefix <> 'N') : 
1

Если вы хотите, чтобы какое-то действие произошло, вы, вероятно, захотите использовать блок else.

3

я не понял, что именно вы пытаетесь сделать, но попробовать это:

if($inputbox!=""){ 
//get suffix and prefix from input box 
    $suffix = $inputbox[strlen($inputbox)-1]; 

    $suffixes = array("L","P","Y","T"); 
    if($inputbox=="NT") { 
     //do that 
    } else if(in_array($suffix, $suffixes)){ 
     //do this 
    } 
} 
0

Первый чек на специальный случай «NT», то для всех другие:

//get suffix and prefix from input box 
$suffix = $inputbox[strlen($inputbox)-1]; 
$prefix = $inputbox[0]; 

if($inputbox!="" && $inputbox=="NT") 
{ 
    //do that 
} else if ($inputbox!="" && $suffix=="L" or $suffix=="P" or $suffix="Y" or $suffix=="T") 
{ 
    //do this 
} 
Смежные вопросы