尝试使用PHP匹配案例来执行某些条件

Trying to use PHP match case to perform some condition

提问人:Abhay 提问时间:10/19/2022 最后编辑:ericmpAbhay 更新时间:10/19/2022 访问量:309

问:

尝试使用 php match case 执行以下操作,它不断抛出未处理的匹配大小写......是不可能还是以错误的方式做。.需要你对如何实现这一点的意见,即使它在外面匹配大小写,实际上我不想使用if语句,我想使用匹配大小写,但如果不可能,我会使用if或切换大小写。谢谢

  function increaseQuantity($data, $cart){
        try {
            $user = Auth::user();
            $data = match($cart){
                !is_null($cart->product_id)  =>  $this->checkProductQuantityInStore($cart),
                !is_null($cart->meal_plan_id)  =>  $this->checkMealPlanQuantityInStore($cart),
            };
            if($data){
                return $data;
            }
            return $user->carts()->where('id', $cart->id)->increment('quantity', $data['quantity'] ?? 1);
        } catch (\Throwable $th) {
            throw $th;
        }
    }

{
    "message": "Unhandled match case of type App\\Models\\Cart",
    "exception": "UnhandledMatchError",
PHP Laravel 比赛

评论

0赞 TZHX 10/19/2022
匹配需要详尽无遗,如果您不满足条件,则会引发错误。您可以添加默认案例来防止这种情况发生。
1赞 Some programmer dude 10/19/2022
写正常的句子,即使是在标题中,全大写都被认为是大喊大叫。对你想帮助你的人大喊大叫是非常不礼貌的。
0赞 Techno 10/19/2022
你说你不想使用 或 ,但是 .你为什么会有这种偏好?就个人而言,我尝试分步分解问题。一个好的步骤是一个简单的步骤。我认为你正试图迈出太大的一步。首先用语句写你的逻辑。当你让它工作时,把它翻译成.ifswitchmatchifmatch
0赞 Abhay 10/19/2022
我会把它换成小写
0赞 Abhay 10/19/2022
好。。我会把它写在if语句中,然后翻译它以匹配...谢谢你的建议

答: 暂无答案