LoginSignup
0
0

More than 1 year has passed since last update.

新・FizzBuzz

Posted at

新・FizzBuzz

自分の中で「これは新しいFizzBuzzだ!」と思っただけなので、感じ方に個人差はあると思います。なるほどなっと私は感じたのでこんな書き方もありますよということです。。。

PHP8から導入された「match式」を使ったFizzBuzzの書き方です。
matchは「値を返せるswitch式」のようなものです。

FizzBuzz.php
function FizzBuzz (int $min, int $max) {
    foreach(range($min, $max) as $value){
        $output = match(true){
            $value % 15 === 0 => 'FizzBuzz',
            $value % 5 === 0 => 'Buzz',
            $value % 3 === 0 => 'Fizz',
            default => (string)$value
        };
        echo $output . '<br>';
    }
}

コードが短くて見やすく書けるのがいいですね。

引数に出力を開始する最小値(\$min)と、どこまで出力するのかの最大値(\$max)を受け取って、range関数でその範囲の数値を配列として作成して、foreachで回してmatchの制約式(true)に引っかかった出力を変数に代入して毎回echoしています。defaultでFizzBuzz以外の数値を文字列にキャストして代入しています。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0