我有一个像这样的数组$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
我做错了什么?
答案 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";
}
}
此外,您不应在同一语句中使用return
和echo
。返回传递结果并从类方法或函数中使用,并获取传递给它的值并返回它,因为方法或函数echo的结果用于将结果输出到浏览器。为简单起见,我在这里使用了回声。