0

我有一个文本框,用于根据输入的代码进行计算。此代码将添加一个前缀或后缀。我的问题是,在一个代码中,前缀和后缀规则会发生冲突并导致两种操作发生,而我只希望前缀操作发生。这是代码:

//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 点了,我想在睡觉前完成这个!

4

5 回答 5

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
    }
}
于 2012-04-13T23:40:26.350 回答
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
}
于 2012-04-13T23:40:10.563 回答
1

如果你想要一个动作或另一个动作发生,你可能想要使用一个else块。

于 2012-04-13T23:39:48.753 回答
0
$suffix = $inputbox[strlen($inputbox)-1];
$prefix = $inputbox[0];

if($suffix == 'T' and $prefix <> 'N') :
于 2012-04-13T23:39:46.460 回答
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
}
于 2012-04-13T23:44:03.330 回答