PHP容易被忽略而出错陷阱 数字与字符串比较_php技巧
0 与任意非数字(或者说,不可转化为数字的字符)前导的字符串比较(操作符为==), 均返回 true.
原因是, 数字与字符串比较时, 先尝试将字符串转换为数字, 再比较, 一个不能转换为数字的字符串, 转换结果为0, 故, 与0比较总返回 true.
更加详细的比较规则, 多种类型的比较规则, 在 PHP手册/语言参考/运算符/比较运算符 可以找到.
在PHP里当两个数字型字符串(只含数字的字符串)进行比较的时候是直接转换成数值进行比较的
如下示例:(注意$a和$b两个变量的最后一位不相等)
//示例1
$a = '511203199106034578';
$b = '511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
运行上面的程序却发现结果为equal(非我们认为的结果)
我们把$a与$b分别加一个字母a进去
//示例2
$a = 'a511203199106034578';
$b = 'a511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
这次输出的是notEqual(正确的结果)
示例1为equal是因为PHP把两个数字型字符串转换成数字型,而这两个数字刚好相等如下示例
$a = 511203199106034578;
$b = 511203199106034579;
echo $a; // 输出 5.1120319910603E+17 即511203199106030000
echo $b; // 输出 5.1120319910603E+17 即511203199106030000
?>
所以我们在示例1中得到的结果是equal
避免出现这种非预期结果的情况是使用类型比较符===如下示例(如果 $a 等于 $b,并且它们的类型也相同)
//示例4
$a = '511203199106034578';
$b = '511203199106034579';
if ($a===$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
这样我们就可以得到预期中的notEqual了

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

WPS是我们常用的办公软件,在进行长篇文章的编辑时,经常会因为字体太小而看不清楚,所以会对字体和整个文档进行调整。例如:把文档进行行距的调整,会让整个文档变得非常清晰,我建议各位小伙伴们都要学会这个操作步骤,今天就分享给大家,具体的操作步骤如下,快来看一看!打开要调整的WPS文本文件,在【开始】菜单中找到段落设置工具栏,你会看到行距设置小图标(如图中红色线圈所示)。2、点击行距设置右下角的小倒三角形,会出现相应的行距数值,可以选择1~3倍行距(如图箭头所示)。3、或者点击鼠标右键点击段落,就会出

根据3月2日数据统计,比特币二层网络MerlinChain总TVL已达30亿美元。其中比特币生态资产占比达90.83%,包括价值15.96亿美元的BTC以及4.04亿美元的BRC-20资产等。上一个月,MerlinChain在开启质押活动14天内,其TVL总额就已经达到了19.7亿美元,超过了去年11月份上线也是最近同样引人注目的Blast。2月26日,MerlinChain生态内的NFT总价值超过了4.2亿美元,成为除以太坊以外NFT市值最高的公链项目。项目简介MerlinChain是OKX支

PHP中int类型转字符串的方法详解在PHP开发中,经常会遇到将int类型转换为字符串类型的需求。这种转换可以通过多种方式实现,本文将详细介绍几种常用的方法,并附带具体的代码示例来帮助读者更好地理解。一、使用PHP内置函数strval()PHP提供了一个内置函数strval(),可以将不同类型的变量转换为字符串类型。当我们需要将int类型转换为字符串类型时,

1、首先打开pycharm,进入到pycharm主页。2、然后新建python脚本,右键--点击new--点击pythonfile。3、输入一段字符串,代码:s="-"。4、接着需要把字符串里面的符号重复20次,代码:s1=s*20。5、输入打印输出代码,代码:print(s1)。6、最后运行脚本,在最底部会看到我们的返回值:-就重复了20次。

AMDCAD升级win11以后电脑卡顿怎么办?如果AMDCAD软件安装后,启动速度或页面加载慢,可能是因为原来的系统设置不是最佳状态,接下来一起看看win11对应的解决方法吧~1、硬件配置不足以支撑win11系统的动画以及特效,这时我们可以先通过开始菜单界面进入系统“设置”。2、在左上方搜索框中搜索“性能”进入“调整Windows的外观和性能”。3、在视觉效果界面下方勾选“调整为最佳性能”。4、设置完成之后点&

PHP字符串操作:有效去除空格的实用方法在PHP开发中,经常会遇到需要对字符串进行去除空格操作的情况。去除空格可以使得字符串更加整洁,方便后续的数据处理和显示。本文将介绍几种有效的去除空格的实用方法,并附上具体的代码示例。方法一:使用PHP内置函数trim()PHP内置函数trim()可以去除字符串两端的空格(包括空格、制表符、换行符等),非常方便且简单易用

PHP字符串操作:去除多余逗号,保留唯一逗号实现技巧在PHP开发中,字符串处理是一个非常常见的需求。有时候我们需要对字符串进行处理,去除多余的逗号,保留唯一的逗号。在这篇文章中,我将介绍一种实现技巧,并提供具体的代码示例。首先,我们来看一个常见的需求:假设我们有一个包含多个逗号的字符串,我们需要去除多余的逗号,只保留唯一的逗号。例如,将"apple,ba

将字符串转换为浮点数是在PHP中常见的操作,可以通过内置的方法来实现。首先要确保字符串是合法的浮点数格式,才能成功地转换为浮点数。下面将详细介绍如何在PHP中将字符串转换为浮点数,并提供具体的代码示例。一、使用(float)强制转换在PHP中,将字符串转换为浮点数最简单的方式就是使用强制转换。强制转换的方式是在字符串前加上(float)即可,PHP会自动将其
