php字符串比较用==的一个教训
来源:互联网 发布:剑三成女霸气脸型数据 编辑:程序博客网 时间:2024/05/18 11:32
一直认为php中字字符串比较直接用==来判断还是很方便的,但今天遇到的一个问题,彻底让我明白了使用strcmp的必要性.这个问题很多老手都可能会忽略的.
今天在登录自己做的程序时,在输入验证码后,想直接按小键盘上回车登录(程序检查了回车事件),结果按回车按成了键盘上回车键旁边小数的那个键,验证码栏就多输入了一个点。由于点很小,我就没注意,再按了一次回车,居然验证码验证成功了。这不见鬼了吗?于是退出再试了一次,多输入一个点,居然的确可以验证通过。果然有问题!但多输2个点,则验证通不过了。
大汗之下,发现是验证用了==。难道字符串==会忽略最后的那个点?
于是做了个实验。
$aa = '3306.';//多个点
$b = '3306';
if($aa == $b) echo "相等哦";
果然得到的结果是相等。
用恒等 === 则 不会得到相等的结论.
用strcmp()也不会得到相等的结论.
于是立刻修正编码规范,禁止使用 == 作为字符串相等比较.改用strcmp();
至于为何 == 会忽略那个点.尚不得知.
- php字符串比较用==的一个教训
- php字符串的比较
- php字符串和0比较挖的一个坑
- 豌豆荚的一个“教训”
- PHP字符串之间的比较
- 字符串比较的一个问题
- 一个ResultSet的 Bug教训
- 一个需求镀金的教训
- 从weblogic的一个教训
- 正则表达式的一个教训
- SCRUM实践的一个教训
- 用js提交表单的一个小教训
- 用振动台校准传感器的一个教训
- PHP 函数 截取字符串效率的比较
- PHP 比较两个字符串的相似度
- PHP中字符串比较的常用方法
- 一个比较好用的PHP文件上传类
- Linux下的惨痛教训=>LTS
- 设置文本字体
- 嵌入字体
- 编码问题
- as3的反射
- JAVA RMI 快速入门实例
- php字符串比较用==的一个教训
- winfrom设置当前画面始终显示在最前面
- JAVA数据类型与转换
- 自己站点的排名记录
- shell 数组的用法
- 百练oj2706 麦森数
- 安装SQL2005SP2 失败在XPSP3,错误代码1603
- Hallo World
- debian或ubuntu将cd加入源,命令apt-cdrom