為了更容易丟擲異常, Laravel 5.5 中新增了兩個輔助函式:throw_if
和 throw_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 的第一手資訊麼?聰明的人都用上這個 外掛 了呢!