开发者社区> 长征6号> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PHP容易出错之二:PHP中的数字与字符串比较

简介:
+关注继续查看

PHP中的比较运算符有点诡异,很容易出错,现列出比较规则:

1、当两个字符进行大小比较时,是比较着这两个字符的ASCII码大小——这条很容易理解。

2、当两个字符串进行大小比较时,是从第一个字符开始,分别比教对应的ASCII大小,只要从从某个对应位置开始,其中一个字符串的当前位置字符大于另一个字符串对应位置字符,即直接判别出这两个字符串大小,如'ba'>'az'——这条其实大家也都知道的。

那么'10'与'a'比较呢,当然还是一样的啦,首先将'1'和'a'ASCII码进行比较,'a'大。

3、当一个数字与一个字符串/字符进行大小比较时,首先系统尝试将此字符串/字符转换为整型/浮点型,然后进行比较,如'12bsd'转型为12,'a'转型为0,千万需要注意的是此时不是将其对应的ASCII码值与数字进行大小比较了。

其实同样的道理,'a'+10结果也是10。

并且容易忽略的:0 与任意不可转化为数字的字符串比较(操作符为==), 均返回 true。

最后就会出现如下结果:

1 var_dump('1000000'<'a');    //result: boolean true
2 var_dump('a'<1);            //result: boolean true
3 var_dump(1<'1000000');      //result: boolean true

与常规中的思维还是有一点点不同的吧。。

 

---------------------------------------------------------------------------------
笔者水平有限,若有错漏,欢迎指正,如果转载以及CV操作,请务必注明出处,谢谢!
分类: PHP

本文转自Windstep博客园博客,原文链接:http://www.cnblogs.com/lwbqqyumidi/archive/2013/01/31/2887086.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP 零基础入门笔记(11):字符串 String
PHP 零基础入门笔记(11):字符串 String
0 0
PHP:simple_html_dom解析html字符串
PHP:simple_html_dom解析html字符串
0 0
PHP字符串开头和结尾的判断方法
PHP字符串开头和结尾的判断方法
0 0
PHP、Python、JavaScript、Java分别对字符串取MD5值
PHP、Python、JavaScript、Java分别对字符串取MD5值
0 0
PHP:time时间戳和str字符串相互转换
PHP:time时间戳和str字符串相互转换
0 0
PHP 判断两个字符串是否相等
PHP 判断两个字符串是否相等
0 0
PHP正则匹配字符串只能包含数字、字符串、下划线
//列子 $string = ' abc_123@c c!'; //去除字符串所有空格(结果为'abc_123@cc!') $string = preg_replace('# #','',$string); //验证字符串是否只包含数字和字母以及下划线 $res = preg_match("/^[a-zA-Z0-9_]+$/",$string); //如果不符合正则表达式规则,则抛出异常 if (!$res){ //自定义异常类 throw new OperationException([ 'errorCode'=>999,
0 0
【PHP内置函数】http_build_query(数组转为url编码后的字符串,相当于mvc的后待参数)
【PHP内置函数】http_build_query(数组转为url编码后的字符串,相当于mvc的后待参数)
0 0
PHP字符串增强加密
PHP字符串增强加密
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
复杂PHP系统性能瓶颈排查及优化
立即下载
PHP与APM_技术内幕和最佳实践
立即下载