处理多个案件的正确方法

时间:2014-03-18 17:20:32

标签: php

我有一个可以返回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,它即将推出

1 个答案:

答案 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;
    }
}