前几天因为老数据库的一个字段,真是引发了好多坑,然后深入了解了一下
`gender` tinyint(4) DEFAULT NULL COMMENT '性别 0女 1男', //不要问我为什么这样存,我也想问
然后数据可能会产生三种情况 (NULL) (0)(1)
in_array语法:
in_array(search,array,type),type可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
跑下代码:
echo in_array(0, [0]) ? 1 : 2; //结果:1
echo in_array(null, [0]) ? 1 : 2; //结果:1
echo in_array(false, [0]) ? 1 : 2; //结果:1
echo in_array("0", [0]) ? 1 : 2; //结果:1
echo in_array("", [0]) ? 1 : 2; //结果:1
echo in_array('', [0]) ? 1 : 2; //结果:1
有没有很神奇,坑了我好久,下面用一下更神奇的写法吧,开启第三个字段的封印
echo in_array(0, [0], true) ? 1 : 2; //结果:1
echo in_array(null, [0], true) ? 1 : 2; //结果:2
echo in_array(false, [0], true) ? 1 : 2; //结果:2
echo in_array("0", [0], true) ? 1 : 2; //结果:2
echo in_array("", [0], true) ? 1 : 2; //结果:2
echo in_array('', [0], true) ? 1 : 2; //结果:2
这样就好了。