PHP与Java在函数封装上体验的区别

php code
    // 用户登录
    public function login(){
        $response = [];
        $fields = ['login' => '','id'=>0];
        $login = getJsonData($response, $fields, 'login');
        if (is_null($login))    // json错误
            return $response;

        $user_id = $fields['id'];
        $user = User::getInstance();
        if ($user_id <= 0) { //未登录
            $check_fields = ['phone_num', 'login_type'];
            if (!checkHaveJson($response, $login, $check_fields))
                return $response;

            $login_type = (int)$login['login_type']; // 登录类型 1:验证码 2:密码
            if (!checkType($response, 1, 2, $login_type, 'login_type'))
                return $response;

            if ($login_type == 1) {  // 是否存在验证码
                if (!checkHaveJson($response, $login, ['verify_code']))
                    return $response;
                array_remove($login,'password');
            } elseif ($login_type == 2) { // 是否存在密码
                if (!checkHaveJson($response, $login, ['password']))
                    return $response;
            }

            if (!$this->checkUserField($response, $login, 2))
                return $response;

            $phone_num = $login['phone_num'];
            $user_info = ['user_id'];
            if ($login_type == 1) {  // 验证码登录
                $verify_code = $login['verify_code'];
                $ret = VerifyCode::checkVerifyCode($verify_code, $phone_num, 2);
                if ($ret != 0)
                    return getRsp($ret);
                $user_info = $user->checkUserLogin($user_info, 'phone_num', $phone_num); // 不检查密码
                VerifyCode::delVerify($phone_num);
            } elseif ($login_type == 2) { // 密码登录
                $password = $login['password'];
                if (checkPassword($response, $password) != 0)
                    return $response;
                array_push($user_info, 'password');
                $user_info = $user->checkUserLogin($user_info, 'phone_num', $phone_num, $password);
            }

            $error_code = $user_info['error_code'];
            if ($error_code != 0)
                return getRsp($error_code);
            $user_id = $user_info['user_id'];
        }

        // 更新用户信息
        $user_info = $user->modifyUserLogin($user_id);
        if (count($user_info) <= 0)
            return getRsp(1001);

        // 返回用户数据
        //$city_code = array_get_value($login,'city_code','');
        //$json_data = Home::getInstance()->getHomeInfo($city_code);
        $json_data['user_info'] = $user_info;
        return getRsp(200,$json_data,1);
    }
java code
    /**
     * 加密
     *
     * @param data
     * @return
     */
    public static String encode(byte[] data)
    {
        StringBuffer sb = new StringBuffer();
        int len = data.length;
        int i = 0;
        int b1, b2, b3;
        while (i < len)
        {
            b1 = data[i++] & 0xff;
            if (i == len)
            {
                sb.append(base64EncodeChars[b1 >>> 2]);
                sb.append(base64EncodeChars[(b1 & 0x3) << 4]);
                sb.append("==");
                break;
            }
            b2 = data[i++] & 0xff;
            if (i == len)
            {
                sb.append(base64EncodeChars[b1 >>> 2]);
                sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);
                sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);
                sb.append("=");
                break;
            }
            b3 = data[i++] & 0xff;
            sb.append(base64EncodeChars[b1 >>> 2]);
            sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);
            sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]);
            sb.append(base64EncodeChars[b3 & 0x3f]);
        }
        return sb.toString();
    }
比较:
php是弱类型语言、脚本语言;
java是强类型语言;

上面php code乍一看,你根本不知道它最后会返回什么;
上面java code,你会很明确知道这个函数会返回什么,只需知道它返回什么对象;
差以毫厘,缪以千里,编码体验上就相差甚远了;
其实最主要的体验是"有无类型的体验"上,对于长时间习惯Java开发后,转PHP,这种CODE惯性上的影响各变化,在体验上还是蛮明显的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dnbug Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值