深入PHP中慎用双等于(==)的详解


Posted in PHP onJune 06, 2013

PHP比较运算符出现的频率实在是太高了,尤其是 ==
if(a == b){
// do something
}
但是,你真的掌握了 == 了吗?细节很重要!
来看下面的代码,说出你认为正确的答案
var_dump('  123fg456'==123);
var_dump('some string' == 0);
var_dump(123.0 == '123d456');
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("1" == "1e0");
先想出你的答案,然后再运行一次看看。如果答案没有差错,那么恭喜你,基础知识很扎实。

解释:
如果比较一个整数和字符串,则字符串会被转换为整数。如果比较两个数字字符串,则作为整数比较。此规则也适用于 switch 语句。
特别注意,字符串转换为整数时,是从左到右,直到遇到非数字字符为止。也就是说 '123abc456' 会被转换成 123,而不是 123456。另外字符串开始的空格会被忽略,比如 '   234abc' 转换为 234。
下面附上松散比较和严格比较的对照表
深入PHP中慎用双等于(==)的详解

PHP 相关文章推荐
php高级编程-函数-郑阿奇
Jul 04 PHP
php发送post请求函数分享
Mar 06 PHP
php自定义session示例分享
Apr 22 PHP
php输入流php://input使用浅析
Sep 02 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
解析PHP中如何将数组变量写入文件
Jun 06 #PHP
浅谈PHP强制类型转换,慎用!
Jun 06 #PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 #PHP
$_GET['goods_id']+0 的使用详解
Jun 06 #PHP
PHP编码规范的深入探讨
Jun 06 #PHP
PHP输出XML到页面的3种方法详解
Jun 06 #PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 #PHP
You might like
php join函数应用
2011/05/04 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
php实现点击可刷新验证码
2015/11/07 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
预备党员政审材料
2014/02/04 职场文书
美容院店长岗位职责
2014/04/08 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
初中毕业生感言
2015/07/31 职场文书
教导处教学工作总结
2015/08/12 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
python如何将mat文件转为png
2022/07/15 Python