2017-11-25 7 views
0

数字が負であるか正であるかを調べて、料金または手数料としてマークしようとしています。次のコードは、$comfeeは常に「手数料」として定義されている、いくつかの理由

$commm = $_POST['com_fee']; 
$findme = '-'; 
$pos = strpos($commm, $findme); 

if ($pos === false) { 
    $comfee = 'Fee'; 
} 
else { 
    $comfee = 'Commission'; 
} 

、私がこれまで持っているものです。誰かが私が間違っていることを教えてもらえますか?

+0

数値が0より小さい場合は負の値になります。 – FirstOne

+0

これは複製可能ではありません。 – FirstOne

+0

質問を編集して 'if'文の前に' var_dump($ pos、$ comm、$ findme、$ _POST);の出力を含めてください。 – Progman

答えて

0

$ _POST [ 'com_fee']は、存在する場合は単に数及び場合は> = 0

//$commm = $_POST['com_fee']; 
$commm_list = [ '', 
    'kjhgfd', 
    'jhgf-dcfvgb', 
    '-', 
    '-1', 
    '0', 
    '+1', 

    ]; 

function from_stf($commm) { 

    $findme = '-'; 
    $pos = strpos($commm, $findme); 

    if ($pos === false) { 
     $comfee= 'Fee'; 
    } else{$comfee='Commission';} 

    return $comfee; 
} 


foreach ($commm_list as $commm) { 
    $res = from_stf($commm); 

    print $commm.' --> '.$res."\n"; 
} 

と結果ですチェック:

$ php ./wiksphp/new.php 
    --> Fee 
kjhgfd --> Fee 
jhgf-dcfvgb --> Commission 
- --> Commission 
-1 --> Commission 
0 --> Fee 
+1 --> Fee 
$ 
+1

投稿データに間違いがありました。ありがとう! –

0

の代わりを探して ' - ' 記号番号が否定的であるかどうかだけでは確認できませんか?

$comm = $_POST['com_fee']; 

$comfee = $comm < 0 ? 'Commission' : 'Fee'; 
関連する問題