首页 > 后端开发 > php教程 > 见鬼啦

见鬼啦

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-23 13:56:19
原创
918 人浏览过

<?php     $huancuns='[{"id":"1","time":"0"},{"id":"2","time":"0"}]';            if($huancuns=="null"||$huancuns==''||$huancuns==0)            {                             echo ("311");            }            else            {                               echo("211");            }?>
登录后复制


为什么输出的是311.。。坑爹见鬼了?


回复讨论(解决方案)

$huancuns==0 不是成立吗?
$huancuns === 0 才不成立

$huancuns==0 不是成立吗?
$huancuns === 0 才不成立



'[{"id":"1","time":"0"},{"id":"2","time":"0"}]' 这个等于0???

字符串转换成数字,如果字符串开头不是数字的话,结果就是0。

这有什么可奇怪的?

var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
登录后复制
登录后复制
bool(true)

这有什么可奇怪的?

var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
登录后复制
登录后复制
bool(true)



学习了,呵,还不如去掉 == 0

这种判断本来就该写作
if(empty($huancuns)) {
//为空时的处理
}

判断变量是否是null,0 “” “0”……用empty($str)

php 比较,当两端有一端是数字,都会转成数字比较的。
可以这样写

            if(!$huancuns) {                echo ("311");            }else{                echo("211");            }
登录后复制

empty或者!都可以
==和 不加()都会产生奇怪的现象...
这是和机制相关的

$huancuns==0 // 去掉这个条件可能是把这个字符串转化成了数字,但是转换失败了,直接就给转成了 0 。
登录后复制

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
什么鬼,没有文件怎么搞
来自于 1970-01-01 08:00:00
0
0
0
没见过VUE的项目实战
来自于 1970-01-01 08:00:00
0
0
0
h2呢?怎么没见h2a啊?
来自于 1970-01-01 08:00:00
0
0
0
仅好友可见分页列表如何实现?
来自于 1970-01-01 08:00:00
0
0
0
如何实现发表的文章仅陌生人可见?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板