今回は、Switch文の応用的な使い方についてです。
コード内で、Aの正規表現の条件に一致したら Aの処理、Bの正規表現の条件に一致したら Bの処理…というようなSwitch文を書きたかったので、今回の方法を試してみました。
参考にさせていただいた記事はこちら。
PHP switch文の応用的な使い方 – Qiita
https://qiita.com/tkykmw/items/ee0ab7bf502361f413d8
で、早速書き方はこちらから。
$image_url = [画像のURL]; switch (true) { case preg_match('/(\.jpg)$|(\.jpeg)$|(\.JPEG)$|(\.JPG)$/', $image_url): // jpeg画像の時の処理 break; case preg_match('/(\.png)$|(\.PNG)$/', $image_url): // png画像の時の処理 break; case preg_match('/(\.gif)$|(\.GIF)$/', $image_url): // gif画像の時の処理 break; case preg_match('/(\.bmp)$|(\.BMP)$/', $image_url): // bmp画像の時の処理 break; }
今回のコードは、画像URLの末尾の拡張子を調べて、その拡張子ごとに処理を分けています。
ちなみに、この書き方は JavaScriptでも使えます。
なお、その場合は、case の後の条件で test() メソッドを使います。
正規表現自体はPHPとほぼ同じです。
以上、switch文の条件に正規表現を使用する方法でした。
switch文の引数に true を指定するやり方を知らなかったので、こんな書き方があるのかと少し驚きでした。
とても興味深かったです。
これで少し複雑な条件分岐が大分楽になりそうです。
同じことにお困りの方がいらっしゃいましたら、是非参考にしていただければと思います。