今天在用PHP中的empty()的函数时,发现它竟然将 0, 和 "0"都当作空值. 这一点儿太令人费解了,不知开发人员是怎么想的. 这是程序中做判断时有很多不方便的地方.
举个简单的例子,一个小游戏,可以产生0~6之间的一个数,让用户来猜. 我想使用empty()来判断用户是不是第一次打开页面. 如果是,就显示欢迎信息.否则就提示猜测是否正确.
现在的问题是,如果产生的随机数恰好是0, 用户输入的输入也是0.这时候应该提示答案正确.不过PHP程序却打印出来了欢迎信息. 因为empty("0")得到的值为true.
没有办法,兵来将挡,水来土掩吧.经过一番调试之后,我找到了自己的解决办法,就是和isset()配合使用,就可以避开刚才那种误报了.
if(empty($guess)&&!isset($guess)){
//首次来访,显示欢迎信息
}else{
//判断对错
}