PHP8.0已經在2020年11月26日正式釋出了,除 JIT 帶來效能提升外,對於我們開發上,也有一些比較好的特性。
- 之前我們在使用 Switch 的時候,每個分支都要寫 break 關鍵字或者 return 關鍵字,否則會導致程式 bug,而且也可以看得出,PHP7的判斷是非嚴格形式進行判斷的,比如下面的示例,在PHP7中 8.0 == ‘8.0’。
- 在 PHP8 中則要簡潔的多,如果你的業務是簡單的單行執行,則直接使用 Match 方法會更方便,不需要 break 也不需要單獨定義變數儲存,因為方法會預設返回命中的結果,且判斷已經升級為嚴格模式進行比對了。
PHP 7
switch (8.0) {
case '8.0':
$result = "Oh no!";
break;
case 8.0:
$result = "This is what I expected";
break;
}
echo $result; // Oh no!
PHP8
echo match (8.0) {
'8.0' => "Oh no!",
8.0 => "This is what I expected",
};
// This is what I expected
總結一下
- Match 是一個表示式,它可以儲存到變數中亦可以直接返回;不需要新申請臨時變數儲存值了。
- Match 分支僅支援單行,它不需要一個 break; 語句;如果是多行,那麼還是需要使用 Switch 來進行處理的。
- Match 使用嚴格比較;這個要處理好,否則會出現意想不到的bug。
本作品採用《CC 協議》,轉載必須註明作者和本文連結