2016-11-30 83 views
0

我對if語句有疑問。即使包含大寫字母,也要比較2個字符串

if($_POST['billing_first_name'] == $tet['data']['0']['first_name']) { 
    } 
    else 
    { 
run code  
    } 

該代碼將它從表單中獲取的字符串與已存在的字符串進行比較。

它的工作原理。但是當我不添加大寫字母時,它終究會運行代碼。

因此,例如,如果我比較字符串與字符串它doesnt運行代碼(這是我想要的)但是,當我比較字符串與字符串它運行的代碼(我不想要)只是因爲theres沒有大寫字母包括在開始。有沒有辦法來解決這個問題?

+1

使用'用strtolower()'上兩個串然後比較http://php.net/manual/en/function.strtolower.php – cmorrissey

+2

''==是大小寫敏感的,['strcasecmp']( http://www.php.net/manual/en/function.strcasecmp.php)不是。 –

+0

當你說它運行的代碼是if塊或其他。 '「湯米」==「湯米」'應該把你放在'else'中 – nerdlyist

回答

0

感謝cmorrissey,我解決了它。

對兩個變量都使用strlower允許我比較2個字符串,而不管其中一個字符串是否有大寫字母。

if(strtolower($_POST['billing_first_name']) == strtolower($tet['data']['0']['first_name'])) { 
    //do nothing 
    }else { 
    //run code 
    } 
+0

@nerdlyist的回答/評論仍然相關。如果您只想在比較的字符串不相等時運行代碼,則可以使用'!='運算符。那麼你將不會有空的條款。此外,如果這是您的解決方案,您應該將其標記爲答案! –

1

基於代碼運行良好的評論這是一個瞭解哪些擋住你是英寸

if(condition){//code}當條件即

if("String" == "String"){echo "foo";} // will echo foo 
if("string" == "String"){echo "foo";} // will not echo foo 

是真的爲了運行將只運行代碼當假你添加其他

// Will echo foo 
if("String" == "String"){ 
    echo "foo"; 
} else { 
    echo "bar"; 
} 

// Will echo bar 
if("string" == "String"){ 
    echo "foo"; 
} else { 
    echo "bar"; 
} 

竅門能讓IFS當事情是假的執行代碼是使用!(意爲不)

// Will echo bar 
if("String" != "String"){ 
    echo "foo"; 
} else { 
    echo "bar"; 
} 

// Will echo foo 
if("string" != "String"){ 
    echo "foo"; 
} else { 
    echo "bar"; 
} 
+0

我試圖運行的代碼,如果2串我比較是相等的,但是當我添加一個大寫字母和一個沒有代碼將運行。我現在解決了它。 –

+0

@ Kevin.a你應該分享你如何解決它。它有助於社區知道這個問題得到解答。 – nerdlyist

相關問題