久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP8 新特性 match 表達式詳解

      PHP8 新特性 match 表達式詳解

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

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

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

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

      那么如果使用match關鍵字呢,可以變成類似:

      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條件沒寫全導致了不可預知的錯誤。

      推薦教程:《PHP8》

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