PHP作为对数据类型要求不严格的语言,通常空字符、0、null是相等的。以前一直觉得in_array函数可以区分其中的数据,但从未认真去了解。直到今天程序出了BUG,经过排查才发现in_array默认情况下竟然也不区分数据类型。
比如下面一段代码:其返回结果为true。
- <?php
- $a = '';
- $b = [0,1];
- var_dump(in_array($a,$b));
- //bool(true)
- ?>
此时如果我们需要排除前端传的空字符的话,我们就需要把in_array的第三个参数设置为true,这样判断时,in_array会采用全等的方式对数据类型进行判断。
小问题,仅供备忘。