深入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+MySQL的聊天室设计
Oct 09 PHP
一个PHP模板,主要想体现一下思路
Dec 25 PHP
一个更简单的无限级分类菜单代码
Jan 16 PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 PHP
关于尾递归的使用详解
May 02 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
php中filter_input函数用法分析
Nov 15 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
php 错误处理经验分享
2011/10/11 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
wxPython中文教程入门实例
2014/06/09 Python
Python函数式编程
2017/07/20 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
五年级数学教学反思
2014/02/11 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
关于分班的感言
2015/08/04 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang