teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

情報の追加。

2020/02/23 03:09

投稿

kei344
kei344

スコア69625

answer CHANGED
@@ -10,4 +10,49 @@
10
10
  [https://www.php.net/manual/ja/language.types.array.php#角括弧構文で作成/修正](https://www.php.net/manual/ja/language.types.array.php#language.types.array.syntax.modifying)
11
11
 
12
12
  【[PHP] 配列・連想配列の初期化、結合、追加 - Qiita】
13
- [https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0#キーを指定して初期化要素の追加](https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0#%E3%82%AD%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E5%88%9D%E6%9C%9F%E5%8C%96%E8%A6%81%E7%B4%A0%E3%81%AE%E8%BF%BD%E5%8A%A0)
13
+ [https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0#キーを指定して初期化要素の追加](https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0#%E3%82%AD%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E5%88%9D%E6%9C%9F%E5%8C%96%E8%A6%81%E7%B4%A0%E3%81%AE%E8%BF%BD%E5%8A%A0)
14
+
15
+
16
+ ---
17
+
18
+ **追記:**
19
+
20
+
21
+ ```PHP
22
+ <?php
23
+ function validation($data) {
24
+ $error = array();
25
+ //氏名のバリデーション
26
+ if (empty($data['your_name'])) {
27
+ $error['your_name'] = "名前は必ず入力してください";
28
+ }
29
+ elseif(20 < mb_strlen($data['your_name'])) {
30
+ $error['your_name'] = "名前は20文字以内で入力してください。";
31
+ }
32
+ if (empty($data['email'])) {
33
+ $error['email'] = "メールアドレスは必ず入力してください";
34
+ }
35
+ elseif(!preg_match('/^[0-9a-z_./?-]+@([0-9a-z-]+.)+[0-9a-z-]+$/', $data['email'])) {
36
+ $error['email'] = "「メールアドレス」は正しい形式で入力してください。";
37
+ }
38
+ if (empty($data['comment'])) {
39
+ $error['comment'] = "コメントは必ず入力してください";
40
+ }
41
+ elseif(10 >= mb_strlen($data['comment'])) {
42
+ $error['comment'] = "コメントは10文字以上で入力してください。";
43
+ }
44
+ return $error;
45
+ }
46
+
47
+ $error = validation([]);
48
+ if( !empty($error) ): ?>
49
+ <?php foreach( $error as $key=> $value ): ?>
50
+ <?php echo $key.'//'.$value.PHP_EOL; ?>
51
+ <?php endforeach; ?>
52
+ <?php endif;
53
+ ```↓
54
+ ```text
55
+ your_name//名前は必ず入力してください
56
+ email//メールアドレスは必ず入力してください
57
+ comment//コメントは必ず入力してください
58
+ ```