輔助函式新成員 throw_if & throw_unless ( Laravel 5.5 新功能早知道)

JokerLinly發表於2017-05-16

file

為了更容易丟擲異常, Laravel 5.5 中新增了兩個輔助函式:throw_ifthrow_unless

TJ Miller 說,就跟其他輔助函式一樣,throw_if 和 throw_unless 同樣也能讓程式碼顯得更清晰更容易讀懂,特別是這兩個函式還能將條件塊減少到一行。

接下來簡單介紹下這兩個函式以及它們的工作原理:

throw_if

顧名思義,即這個函式第一個傳入的引數是布林值,如果為 true 就丟擲異常。

簡單例子:

$foo = false;
throw_if($foo, new BarException('Foo is false'));
// or 
throw_if($foo, BarException::class, 'Foo is False'); 

下面是這個函式實現的參考內容:

function throw_if($boolean, $exception, $message = '')
{
    if ($boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

throw_unless

throw_if 一樣的使用方法,只不過它是判斷當傳入的第一個引數為 false 時,才會丟擲異常。

$foo = true;
throw_unless($foo, new BarException('Foo is True'));
// or
throw_unless($foo, BarException::class, 'Foo is True');

看,幾乎一樣的實現方法:

function throw_unless($boolean, $exception, $message)
{
    if (! $boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

這兩個函式會在七月份推出的 Laravel 5.5 版本上釋出~ 七月份喲!即下一個 LTS 的推出時間!

想更多更及時的知道 Laravel 的第一手資訊麼?聰明的人都用上這個 外掛 了呢!

參考連結:https://laravel-news.com/throw_if-throw_unless

Stay Hungry, Stay Foolish.

相關文章