0

入力されたコードに基づいて計算を行うために使用しているテキストボックスがあります。このコードには、プレフィックスまたはサフィックスが追加されます。私の問題は、1 つのコードで、プレフィックスとサフィックスのルールが衝突し、両方のアクションが発生することです。プレフィックス アクションのみを実行したい場合です。コードは次のとおりです。

//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. また、削除した冗長なルールがあります。また、 yourはs&&よりも優先されます。orしかし、それは不要でもあります。また、割り当てと条件を混在させました。(もしかして少し休む?)

// 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

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 に答える