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

回答編集履歴

2

edit

2021/09/25 04:18

投稿

m.ts10806
m.ts10806

スコア80890

answer CHANGED
@@ -7,10 +7,11 @@
7
7
  ラジオボタンを同じ理屈です。
8
8
  グー、チョキ、パーも設定的に配列で持っておけば良いです。
9
9
  ```html
10
- <input type="image" src="images0.png" name="sub" alt="グー" value="0">
10
+ <button name="sub" value="0">グー</button>
11
- <input type="image" src="images1.png" name="sub" alt="チョキ" value="1">
11
+ <button name="sub" value="1">チョキ</button>
12
- <input type="image" src="images2.png" name="sub" alt="パー" value="2">
12
+ <button name="sub" value="2">パー</button>
13
13
  ```
14
+ ※[type=image](https://developer.mozilla.org/ja/docs/Web/HTML/Element/input/image)はvalue使えないので例示のため変更しています。
14
15
 
15
16
 
16
17
  ```php

1

edit

2021/09/25 04:18

投稿

m.ts10806
m.ts10806

スコア80890

answer CHANGED
@@ -1,4 +1,31 @@
1
1
  POSTやGETは直接参照されない方が良いです。
2
2
  [filter_input()](https://www.php.net/manual/ja/function.filter-input.php)を利用するとnullかどうかで判定できるので実装もシンプルになります。
3
3
 
4
- ただ、いずれにしても`$player`のように後から参照される変数はグローバルスコープで初期化しておいた方が良いです。
4
+ ただ、いずれにしても`$player`のように後から参照される変数はグローバルスコープで初期化しておいた方が良いです。
5
+
6
+ あと、nameを同じにしてvalueかえれば「~が来てたら」をわざわざ書かなくてもよくなります。
7
+ ラジオボタンを同じ理屈です。
8
+ グー、チョキ、パーも設定的に配列で持っておけば良いです。
9
+ ```html
10
+ <input type="image" src="images0.png" name="sub" alt="グー" value="0">
11
+ <input type="image" src="images1.png" name="sub" alt="チョキ" value="1">
12
+ <input type="image" src="images2.png" name="sub" alt="パー" value="2">
13
+ ```
14
+
15
+
16
+ ```php
17
+ $action = ["グー","チョキ","パー"];
18
+
19
+ $sub = filter_input(INPUT_POST,"sub");
20
+
21
+ if(!is_null($sub)){
22
+ echo $sub;
23
+ echo "自分の手:".$action[$sub];
24
+
25
+ //以下、判定処理
26
+ $computer = rand(0,2);
27
+ echo "コンピュータの手:".$action[$computer];
28
+ }
29
+ ```
30
+
31
+ HTMLはブラウザのデベロッパツールでその場限りの改ざんが可能なので自分の手は初期値設定したうえでarray_key_existsなどでチェックしたほうが良いかもしれませんけどね。