使用双等号对比大小写不同字符串时if语句返回FALSE问题咨询
结论
该if语句本就不应该返回TRUE,返回FALSE是符合PHP语法规则的正常运行结果。
问题原因
你提供的是PHP代码,PHP中==(松散相等运算符)对两个字符串做比较时,默认执行区分大小写的逐字符比对:
大小写英文字母的ASCII编码值完全不同,例如小写s的ASCII值为115,大写S的ASCII值为83,两个对比字符串的第一个字符就匹配失败,因此最终判断结果为不相等。
不区分大小写的比对方案
如果需要实现忽略大小写的字符串相等判断,可以使用PHP内置的strcasecmp()函数,函数返回0即代表两个字符串忽略大小写后相等,示例代码如下:
if (strcasecmp("sometext", "SOMEtext") == 0) { echo "TRUE"; } else { echo "FALSE"; }
上述代码运行后会输出TRUE。
内容的提问来源于stack exchange,提问作者pato-cyber
相关产品推荐
相关产品推荐

