2014-07-24 119 views
-2

需要通過POST捕獲兩個變量。比較整數和字符串PHP

如果他們是不同的整數,保存$ mensalidade = 4和一個整數和任何其他狀態保存$ mensalidade = 8。

我嘗試這一點,但不工作..

if (is_int($_POST['linha_ida']) != is_int($_POST['linha_volta'])) { 

    $mensalidade= $_POST['mensalidade']=4; 

} else { 

    $mensalidade= $_POST['mensalidade']=8; 
} 

打破了多一點的頭,現在是完美的! 感謝所有

的代碼看起來像這樣

if($linha_ida === $linha_volta || preg_match('/[A-Z]/' , $linha_volta)|| preg_match('/[A-Z]/' , $linha_ida)){ 
    $mensalidade= $_POST['mensalidade']=8; 
    } else{ 
    $mensalidade= $_POST['mensalidade']=4; 
} 
+0

'is_int'測試一個字符串是否包含整數。它會返回一個布爾值。所以你只測試一個POST值是一個整數,而另一個不是。 – knittl

+2

如果參數是一個整數,則is_int()返回true或false。如果您將'is_int($ iamaninteger)'與'is_int($ iamanintegertoo)'進行比較,那麼您會比較'true'和'true',而不是您的變量值。 http://php.net/manual/en/function.is-int.php –

回答

1

只需使用(int)解析器將字符串轉換爲整數。

if ((int)$_POST['linha_ida']) != (int)($_POST['linha_volta']) && is_int($_POST['linha_ida']) && is_int($_POST['linha_volta']) { 

    $mensalidade= $_POST['mensalidade']=4; 
} else { 
    $mensalidade= $_POST['mensalidade']=8; 
} 

從問題的評論取自仙人掌

仙人掌:如果該參數爲整數或不 is_int()返回true或false。如果你比較is_int($ iamaninteger)和is_int($ iamanintegertoo),你比較true和true,而不是你的變量的值。

+1

我可能是錯的,但我認爲當前發佈的代碼會爲兩個非整數節省4個例如 – Cthulhu

+0

@Cthulhu是的,你說得對,修復它 – KhorneHoly

0
if (is_int($_POST['linha_ida']) && is_int($_POST['linha_volta']) && $_POST['linha_volta'] != $_POST['linha_ida']) { 
    $mensalidade= $_POST['mensalidade']=4; 
} else { 
    $mensalidade= $_POST['mensalidade']=8; 
} 
+0

Downvoters:提問者想要檢查'$ _POST ['linha_ida']'和'$ _POST ['linha_volta']'是否是整數並且它們的值是否不同。 – AndiPower

+0

感謝大家幫助!正是這樣!我只用了INT – denis