我有一个可以返回3种不同情况的方法
public function check_verification_status($user_id) {
global $db;
$sql = "SELECT * FROM `users`
WHERE `id` = ".clean($user_id)."
AND `type_id` = 1";
$result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0);
$list = mysql_fetch_array($result);
if ($list['verification_key'] == '' && !$list['verified']) {
//No key or verified
return 0;
} elseif ($list['verification_key'] != '' && !$list['verified']) {
//key exists but not verified = email sent
return 2;
} elseif ($list['verification_key'] != '' && $list['verified']) {
//verified
return 1;
}
}
根据此
的返回值输出表单/消息在比较2个案例时,我会使用bool作为返回值,处理超过2个案例的正确方法是什么,理想的返回值是什么。
我称之为:
$v_status = $ver->check_verification_status($user_id);
if ($v_status === 0) {
//do something
} elseif ($v_status === 1) {
//do something else
} elseif ($v_status === 2) {
//do something totally different
}
我想学习处理此类案件的正确方法,因为我经常遇到这些案件。
注意:我知道我需要升级到mysqli或PDO,它即将推出
答案 0 :(得分:2)
你拥有的很好,但你也可以使用switch语句:
$v_status = $ver->check_verification_status($user_id);
switch ($v_status) {
case 0: {
//do something
break;
}
case 1: {
//do something else
break;
}
case 2: {
//do something totally different
break;
}
}