やりたいこと
指定した条件を判定し、処理を分岐したい。
指定する条件が複数あり、これらを配列で指定する。
配列内容を確認し、条件にマッチするか判定する。
具体的には、日付と数字の組み合わせで判定を行う。
日付+数字(じゃんけん何戦目か)
これは、2020年3月30日週の第3戦目のめざましじゃんけんが、ポイント2倍になったので、この機能を作りこむことにした。
実装方法
条件を配列に登録する。
- 日付:条件となる日付を配列で指定
define('DOUBLE_DATE',['2020-03-30','2020-03-31','2020-04-01','2020-04-02','2020-04-03'])
- 数字:条件となる数字を配列で指定 define('DOUBLE_TIMES',[3])
配列内に存在する値かを「in_array」関数で判定する。
似た関数で「array_search」関数がありますが、array_searchは指定する値が配列の何番目かを検索します。
in_arrayは、単純に指定する値がある・ないを判定します。
実装サンプルソースコード
//ダブルポイント対象回次と日付
define('DOUBLE_TIMES',[3]);
define('DOUBLE_DATE',['2020-03-30','2020-03-31','2020-04-01','2020-04-02','2020-04-03']);
//$this_date, $this_timeは、判定対象の値。
//今回の場合、じゃんけん実施日、何戦目か(数字)
$date_flg = in_array($this_date,DOUBLE_DATE);
$times_flg = in_array($this_times,DOUBLE_TIMES);
if($date_flg and $times_flg){
//条件に合致した際の処理
}