有趣的 0
今天遇到个很有意思的问题,跟它杠了半天 哈哈哈。就是一个对于0的判断!
相信很多项目数据库表中都有status(状态)这个字段,那么0,1,2,3...各自代表不同的状态,在搜索功能中可能就会用这个状态值来搜索。那么在PHP文件肯定会预留一个变量来接收这个状态值,然后判断它是否存在再进行where语句的拼接。
那么问题来了,当你已经定义了这个接收状态的变量,但是这个变量并没有接收到任何值,这时对于变量判断就会和数字0一样。也就是说数字0代表了empty,!isset,false。但是如果是把0当做字符串的话就一切正常啦。
用了个两层判断解决这个问题。。。
例:
if($filter['status'] == '0'){
$whereis .=" AND `status` = '0' ";
}
if(!empty($filter['status'])){
$whereis .=" AND `status` = '{$filter['status']}' ";
}
但我觉得最好的解决办法就是不要用0咯,直接从1开始嘛,除非是有强迫症(哈哈哈)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步