见鬼啦

WBOY
풀어 주다: 2016-06-23 13:56:19
원래의
868명이 탐색했습니다.

<?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 。
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿