国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

如何封裝響應(yīng)輸出方法

13280048428

我在api應(yīng)用中封裝了幾個(gè)響應(yīng)返回的方法, 但用法并不友好,比如:

public function success($data = false)
{
    return json([
        'code' => 200,
        'msg' => '操作成功',
        'data' => $data
    ]);
}

我的本意是,在接口請(qǐng)求中直接 $this->success() 就能夠輸出響應(yīng)
但在實(shí)際的操作過(guò)程中并非如此,我必須使用 return $this->success() 才能夠輸出數(shù)據(jù)
當(dāng)然,還有一些更復(fù)雜一些的場(chǎng)景, 比如在checkIpVisit, checkUserVisit 中控制訪(fǎng)問(wèn)頻率,超過(guò)預(yù)期頻率則直接輸出, 否則繼續(xù)執(zhí)行程序

$res = $this->checkUserVisit();
if ($res) {
    return $res;
}

如果只能夠做成上面這個(gè)樣子的話(huà),看起來(lái)就十分愚蠢了

有什么好一點(diǎn)的實(shí)現(xiàn)方式嗎?

1531 2 0
2個(gè)回答

小杰

return是需要返回內(nèi)容時(shí)使用它,調(diào)用方法,它內(nèi)的 return是返回了它自己的內(nèi)容,在你調(diào)用的地方只是僅僅得到了這個(gè)內(nèi)容而已。

  • 暫無(wú)評(píng)論
nitron

checkXXX不通過(guò)的時(shí)候可以直接throw exception,然后用exception handler捕獲進(jìn)行輸出
這樣就不會(huì)有你說(shuō)的"看起來(lái)就十分愚蠢"的樣子了,直接就

return $this->checkUserVisit();
// or
$this->checkUserVisit();
//your next code here
  • 13280048428 2022-04-06

    如果直接使用 return $this->checkUserVisit(); 的話(huà), 驗(yàn)證無(wú)誤會(huì)返回一個(gè)void

  • nitron 2022-04-06

    你自己上面寫(xiě)的是

    $res = $this->checkUserVisit();
    if ($res) {
        return $res;
    }

    那又怎么是個(gè)void?

  • 13280048428 2022-04-06

    我改成了 try { checkXX(); checkXX();... } catch (xx) {return $this->error($e->getMessage())};

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??