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

回答編集履歴

1

コメント

2018/06/12 00:29

投稿

yambejp
yambejp

スコア117946

answer CHANGED
@@ -2,9 +2,21 @@
2
2
 
3
3
  ```PHP
4
4
  <?PHP
5
+ $weapon=filter_input(
6
+ INPUT_POST, //postデータを受け取る
7
+ "weapon", //weaponというパラメータ
8
+ FILTER_DEFAULT, //チェック方式はとくに指定しない
9
+ [
5
- $weapon=filter_input(INPUT_POST,"weapon",FILTER_DEFAULT,["options"=>["default"=>[]],"flags"=>FILTER_REQUIRE_ARRAY]);
10
+ "options"=>["default"=>[]], // オプションでデフォルト値をからの配列にする
11
+ "flags"=>FILTER_REQUIRE_ARRAY // パラメータを配列でうけとれるようにする
12
+ ]);
6
- if(count($weapon)>0){
13
+ if(count($weapon)>0){ // 受け取った$weapon配列に一つでも要素があれば・・・
7
- print "持ちブキ : ".implode(",",array_map(function($x){return htmlspecialchars($x);},$weapon))."<hr>";
14
+ print "持ちブキ : ".implode( // 配列を文字列に結合
15
+ ",", // 結合にはカンマを利用
16
+ array_map(function($x){ // $weaponを単に結合するのではなく一部変更
17
+ return htmlspecialchars($x); // htmlに使えない文字を変換
18
+ },$weapon)
19
+ )."<hr>"; // 水平線を引く
8
20
  }
9
21
  ?>
10
22
  <form method="post">
@@ -21,4 +33,9 @@
21
33
  <input type="submit" value="go">
22
34
  </form>
23
35
 
24
- ````
36
+ ````
37
+
38
+ ※コメントつけました
39
+ - filter_inputはpostやgetで受け取ったデータをバリデートしたり存在確認したりする関数
40
+ - implodeは配列を文字列にする関数
41
+ - array_mapは配列の要素に適当な処理をくわえて別の配列を作成する関数