はじめに
こんにちは。先日兄から自動化処理の仕事を受注しました、筆者です
さて、今回は初のネタ記事です
でも一応PHP8に触れているので興味持っていただければそれだけでうれしいです
MATCHという飲み物を知っていますか?
↓これ
自分は高校生の頃に飲んでいた記憶です。
食堂(購買)横に設置している自販機に夏になる現れる人気(主観)な飲み物です!
私だけですかね、なんか青春って感じがします
最近はお笑い芸人のティモンディの2人がCMをやっていますね!
match式を知っていますか?
これ↓
PHP8で追加された、関数ではなく、式です!
(コマンドで関数のリファレンス参照しようとして気づきました、、あ、関数じゃないわ、これ )
$ php -v
PHP 8.0.3 (cli) (built: Mar 5 2021 07:54:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies
$ php --rf match
Exception: Function match() does not exist
ざっくり説明すると、厳密なswitch文みたいな感じです。
ただ、使い方によってはあいまい差を持たせることもできます。
match式のメリット
ざっと思いつくメリットは以下でして、フォールスルーは場合によってはスマート(主観)に書けるケースもあると思っているので、すべてが悪だと私は思っていませんが、バグの温床にもなるので無いと助かります。
フォールスルーしない
厳密な比較
返り値がある式
本題
ただただ、match式を使いたいだけに、「やればできる!」と言われたときだけ「ビビビビビタミン!MATCH」と返すmatch式を作ります!
<?php
echo match ($argv[1]) {
'やればできる!' => "ビビビビビタミン!MATCH\n",
'なせばなる' => "vitamin\n",
'うてばひびく' => "ティモンディ\n",
default => null
};
実行
$ php match.php "やればできる!"
ビビビビビタミン!MATCH
$ php match.php "なせばなる"
vitamin
おわりに
やればできたよ!
それでは!
↧