php中字符串与数值的比较出现的意向不到的问题

199次阅读
没有评论

PHP 是一门弱类型语言,当涉及“==”判断时,它的表现是有一些奇特的。
例如,“a==0”将会得到 true,“a==1”将会得到 false。

原理:PHP 语言中在涉及“==”判断时,如果运算符两边分别为字符串(不以数字开头的字符串),会将字符串转化为数字 0,再进行比较。如果是以数字开头的字符串,那么它将会转化成开头的数字(即第一个字母前的所有数字)。

(int)"787abe"=787   
(int)"abc"=0    
(int)"1a2b"=1    
(int)"a12b"=0    
(int)"000123abc"=123

例外:(int)“1e2”==100,在 PHP 中若像这种格式的字符串转化成数字,PHP 会将其视为科学计数法。
(int)“1e2abc”=(int)“1e2”=100
(int)“1eabce”=1

原文链接:https://blog.csdn.net/weixin_55234680/article/details/120853735

so, 规范操作尽量避免不同类型变量的比较。

正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码