见鬼啦

WBOY
Lepaskan: 2016-06-23 13:56:19
asal
868 orang telah melayarinya

<?php     $huancuns='[{"id":"1","time":"0"},{"id":"2","time":"0"}]';            if($huancuns=="null"||$huancuns==''||$huancuns==0)            {                             echo ("311");            }            else            {                               echo("211");            }?>
Salin selepas log masuk


为什么输出的是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);
Salin selepas log masuk
Salin selepas log masuk
bool(true)

这有什么可奇怪的?

var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
Salin selepas log masuk
Salin selepas log masuk
bool(true)



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

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

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

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

            if(!$huancuns) {                echo ("311");            }else{                echo("211");            }
Salin selepas log masuk

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

$huancuns==0 // 去掉这个条件可能是把这个字符串转化成了数字,但是转换失败了,直接就给转成了 0 。
Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan