备忘:PHP in_array函数无法区分空字符

PHP作为对数据类型要求不严格的语言,通常空字符、0、null是相等的。以前一直觉得in_array函数可以区分其中的数据,但从未认真去了解。直到今天程序出了BUG,经过排查才发现in_array默认情况下竟然也不区分数据类型。

比如下面一段代码:其返回结果为true。

  1. <?php
  2. $a = '';
  3. $b = [0,1];
  4. var_dump(in_array($a,$b));
  5. //bool(true)
  6. ?>

此时如果我们需要排除前端传的空字符的话,我们就需要把in_array的第三个参数设置为true,这样判断时,in_array会采用全等的方式对数据类型进行判断。

小问题,仅供备忘。

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!