in_array在$ haystack中找不到$ needle

时间:2018-12-07 13:57:56

标签: php arrays function

所以我遇到了使用数组存储用户名的情况。这里提供的函数应该检查用户名是否存在,回显信息,如果用户名唯一,则应将其添加到数组中。

<?php
function check_if_name_exists ($name = NULL)
{
    $names = array ("Bob", "Alise", "Karl", "Joe");
    if ($name = NULL)
    {
          echo "you didn't input name";
    }
    else
    {
      if (in_array($name , $names) )
        {
          echo "$name alredy used\n";
        }
      else
        {
          echo "name free\n";
          $names[] = $name ;
        }
    }

}
 ?>

但是当我用以下命令调用函数时:

check_if_name_exists();

,或者如果我添加一个不存在的名称,则总是得到以下输出:

name free

欢迎任何帮助。 谢谢

1 个答案:

答案 0 :(得分:3)

if ($name = NULL)

您正在将NULL分配给$name

当转换为布尔值时,NULL变为false。因此,它在其他条款中继续。由于NULL中没有$names,因此输出变为“无名称”。

使用===进行比较。