如何检查交换机中的isset?

时间:2016-03-04 08:46:20

标签: php

我有一个像这样的数组$arr

array(2) {
["name"]=>
string(3) "Foo"
["email"]=>
string(13) "foo@gmail.com"
} 

我想检查name, email, password字段是否已设置,所以我这样做了:

 if(!isset($arr))
    {
        switch($arr)
        {
            case isset($user['name']):
                http_response_code(400);
                return echo "name missing";
                break;
            case isset($user['password']):
                http_response_code(400);
                return echo "password missing";
                break;
            case isset($user['email']):
                http_response_code(400);
                return echo "email missing";
                break;
        }
    }

但代码不属于任何开关案例,您如何看到我错过字段password我做错了什么?

1 个答案:

答案 0 :(得分:0)

以switch语句开头,用于运行相同的算法并根据结果进行切换。你需要的是一系列if语句。您的代码可以像这样重写......

if(isset($arr)) {
    if(!isset($arr['name'])) {
        http_response_code(400);
        echo "name missing";
    }
    if(!isset($arr['password'])) {
        http_response_code(400);
        echo "password missing";
    }
    if(!isset($arr['email'])) {
        http_response_code(400);
        echo "email missing";
    }
}

此外,您不应在同一语句中使用returnecho。返回传递结果并从类方法或函数中使用,并获取传递给它的值并返回它,因为方法或函数echo的结果用于将结果输出到浏览器。为简单起见,我在这里使用了回声。