2016-11-30 29 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

相关问题