回答編集履歴

2

見直し

2019/09/10 03:52

投稿

退会済みユーザー
test CHANGED
@@ -70,6 +70,56 @@
70
70
 
71
71
 
72
72
 
73
+ ---
74
+
75
+
76
+
77
+ あくまで机上のコードだけど、こういうのはどうだろうか。
78
+
79
+ ```php
80
+
81
+ $holiday_name = '';
82
+
83
+ if (isset($holidays[$date])) {
84
+
85
+ // 祝日名がヒット
86
+
87
+ $holiday_name = $holidays[$date];
88
+
89
+ } // ヒットしなければ空文字列のまま
90
+
91
+
92
+
93
+ if ($holiday_name !== '') {
94
+
95
+ // 祝日名がある
96
+
97
+
98
+
99
+ }
100
+
101
+ else {
102
+
103
+ // 祝日名がない
104
+
105
+
106
+
107
+ }
108
+
109
+ ```
110
+
111
+ 「yyyy-mm-dd」な形式で日付文字列が生成できていれば、
112
+
113
+ $holidaysで引き当ててカレンダー出力に織り込むだけじゃないかと。
114
+
115
+ それを各日付ごとに実施すれば良いだけ。
116
+
117
+
118
+
119
+ ---
120
+
121
+
122
+
73
123
  `$holidays[]`のキーに日付をもとにした文字列「yyyy-mm-dd」が与えられたら祝日名を返すような構造を考えたのであれば、
74
124
 
75
125
  いっそ関数化してしまえばラクじゃないですかね。

1

見直し

2019/09/10 03:52

投稿

退会済みユーザー
test CHANGED
@@ -67,3 +67,57 @@
67
67
  ```
68
68
 
69
69
  なんだよね。ここで?なぜ全部連結したものを出力する?
70
+
71
+
72
+
73
+ `$holidays[]`のキーに日付をもとにした文字列「yyyy-mm-dd」が与えられたら祝日名を返すような構造を考えたのであれば、
74
+
75
+ いっそ関数化してしまえばラクじゃないですかね。
76
+
77
+ `$holidays[]`を参照するたびに日付文字列キーが存在するかどうか確認するところを関数としてラッピングすれば。
78
+
79
+ (下記、あくまで机上のコード。)
80
+
81
+
82
+
83
+ ```php
84
+
85
+ function getHoliday($date) {
86
+
87
+ if (isset($holidays[$date])) {
88
+
89
+ return $holidays[$date];
90
+
91
+ }
92
+
93
+ else {
94
+
95
+ return '';
96
+
97
+ }
98
+
99
+ }
100
+
101
+ ```
102
+
103
+
104
+
105
+ どうせなら、CSVファイルの読み込み部分も含めてclassにすれば、
106
+
107
+ 初期化時点でCSVファイルから読み込んで祝祭日名を保持し、
108
+
109
+ getメソッドで祝祭日名を得られる、くらいにすると良いよね。
110
+
111
+
112
+
113
+ そういうことを、先行者たちは考えて、
114
+
115
+ japanese-holiday/japanese-holiday
116
+
117
+ とか
118
+
119
+ holiday-jp/holiday_jp
120
+
121
+ とか出来ているわけで。
122
+
123
+ 車輪の再発明をせずともちゃんと動くのがほしいわけで。