PHP错误,包含过多的IF语句,需要第二个视图

问题描述

我在ifelse陈述中迷失了方向,并没有找出明显简单的问题就能弄清正确的语法。

我有3种情况,我要寻找的code保存在DTB中,或者经过硬编码,并且代码开始CODE_1-或根本没有code

一个定义的变量$code

$code = discount::where('code',$discount_code)

1]让我们检查变量$code是否在数据库中或返回0

if (!is_null($code) !== false){
   $response['discount'] = $code->discount;
   } else {
     $response['valid'] = false;
     $response['discount'] = 0;          
    

2]变量在DTB中不是变量,但是是硬编码的CODE_1-这种类型的代码总是始于CODE_1-,因此函数strpos可以提供帮助

然后我的问题开始了,code在日期数据库中不是

if (is_null($code) = (strpos($discount_code,'CODE-')) {
    $response['valid'] = true;
    $response['discount'] = 50;

3] Code修改或保存在数据库

?

所有这些条件可以合并在一起吗?

更新1

如何在此行if (strpos($discount_code,'CODE-') !== false) {加上条件

=> IF $code = null than strpos(...

        if (!is_null($code) !== false) {
            $referal_uid = $this->usersRepo->getIdByHash($discount_code);
            $userExists = User::find($referal_uid);
            $different_user = ($referal_uid !== Auth::id() ? true : false);
                if ($userExists && $different_user)
                {
                    $response['valid'] = true;
                    $response['discount'] = $code->discount;
                    $response['referal'] = $userExists->email;

                } else {
                    $response['valid'] = false;
                    $response['discount'] = 0;
                    $response['referal'] = '';

                }

                if (strpos($discount_code,'CODE-') !== false) {
                    $referal_uid = $this->usersRepo->getIdByHash($discount_code);
                    $userExists = User::find($referal_uid);
                    $different_user = ($referal_uid !== Auth::id() ? true : false);
                    if ($userExists && $different_user)
                    {
                        $response['valid'] = true;
                        $response['discount'] = 5;
                        $response['referal'] = $userExists->email;
                    }
                    return $response;
                }
                
                return $response;
            }
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)