深入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 curl_setopt 函数的相关应用及介绍
Jun 17 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
PHP asXML()函数讲解
Feb 03 PHP
PHP根据key删除数组中指定的元素
Feb 28 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 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实现留言板功能(代码详解)
2017/03/28 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
JavaScript高级程序设计
2006/12/29 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python写日志封装类实例
2015/06/28 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
产品陈列协议书(标准版)
2014/09/17 职场文书
政风行风评议心得体会
2014/10/21 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
高中班长竞选稿
2015/11/20 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
Python Socket编程详解
2021/04/25 Python
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
MySQL分布式恢复进阶
2022/07/23 MySQL