易截截图软件、单文件、免安装、纯绿色、仅160KB

php字符串比较用==的一个教训

一直认为php中字字符串比较直接用==来判断还是很方便的,但今天遇到的一个问题,彻底让我明白了使用strcmp的必要性.这个问题很多老手都可能会忽略的.
今天在登录自己做的程序时,在输入验证码后,想直接按小键盘上回车登录(程序检查了回车事件),结果按回车按成了键盘上回车键旁边小数的那个键,验证码栏就多输入了一个点。由于点很小,我就没注意,再按了一次回车,居然验证码验证成功了。这不见鬼了吗?于是退出再试了一次,多输入一个点,居然的确可以验证通过。果然有问题!但多输2个点,则验证通不过了。
大汗之下,发现是验证用了==。难道字符串==会忽略最后的那个点?
于是做了个实验。
$aa = '3306.';//多个点
$b = '3306';
if($aa == $b) echo "相等哦";
果然得到的结果是相等。
用恒等 === 则 不会得到相等的结论.
用strcmp()也不会得到相等的结论.
于是立刻修正编码规范,禁止使用 == 作为字符串相等比较.改用strcmp();
至于为何 == 会忽略那个点.尚不得知.


相关文档:

重要的PHP超级全局变量总结




重要的PHP超级全局变量总结

2008-07-14 16:53:03
 标签:全局变量
   [推送到技术圈
]
        PHP有9个预定义变量数组,分别总结如下:
 
1、$_SERVER
       
$_SERVER超级全局变量包含由web服务器创建的信息 ......

PHP 在线聊天系统的实现

在线实时聊天系统,一直是一个比较麻烦的东西。
一般实现在线实时聊天,是利用JS在客户端使用ajax每隔一定的时间就返回服务器请求数据,如果有新的聊天信息则用JS呈现给用户
我们不说这样做的利弊,直接切入正题,如何来实现服务器推的在线聊天系统
首先,我先请大家看一个例子
复制代码
<?php
while(true){
&n ......

PHP中多维数组的排序

1.用户定义排序:usort($array, functionName);其中functionName为用户定义的函数名,用户定义的函数指定排序规则,比较数组中两个元素的大小,大于返回正数,小于返回负数,等于返回0。2.反向用户排序:用户定义函数时,比较数组中两个元素的大小,大于返回负数,小于返回正数,等于返回0。$fruits = array(array('APP', ' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号