欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          PHP8 新特性 match 表達式詳解

          PHP8 新特性 match 表達式詳解

          PHP8 alpha2發(fā)布了,最近引入了一個新的關(guān)鍵字:match, 這個關(guān)鍵字的作用跟switch有點類似。

          這個我覺得還是有點意思,match這個詞也挺好看,那么它是干啥的呢?

          在以前我們可能會經(jīng)常使用switch做值轉(zhuǎn)換類的工作,類似:

          function convert($input) {     switch ($input) {         case "true":             $result = 1;         break;         case "false":             $result = 0;         break;         case "null":             $result = NULL;         break;     }     return $result; }

          那么如果使用match關(guān)鍵字呢,可以變成類似:

          function converti($input) {     return match($input) {         "true" => 1,         "false" => 0,         "null" => NULL,     }; }

          相比switch, match會直接返回值,不再需要上面switch例子中的$result中間變量。

          并且,類似switch的多個case一個block一樣,match的多個條件也可以寫在一起,比如:

          return match($input) {     "true", "on" => 1,     "false", "off" => 0,     "null", "empty", "NaN" => NULL, };

          需要注意的和switch不太一樣的是,以前我們用switch可能會經(jīng)常遇到這種詭異的問題:

          $input = "2 person"; switch ($input) {     case 2:         echo "bad";     break; }

          你會發(fā)現(xiàn),bad竟然被輸出了,這是因為switch使用了寬松比較(==)。match就不會有這個問題了, 它使用的是嚴格比較(===),就是值和類型都要完全相等。

          還有就是,當input并不能被match中的所有條件滿足的時候,match會拋出一個UnhandledMatchError exception:

          function convert($input) {     return match($input) {         "true" => 1,     }; } convert("false");

          會得到:

          Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type string

          這樣就不用擔心萬一match條件沒寫全導(dǎo)致了不可預(yù)知的錯誤。

          推薦教程:《PHP8》

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號