回答編集履歴

1

修正

2020/05/02 13:07

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Undefined variableは「未定義の変数」
6
6
 
7
- プログラミングは定義したものしか参照できません。
7
+ プログラミングは定義したものしか参照できません。(言語によっては自動的に定義される情報もあります)
8
8
 
9
9
 
10
10
 
@@ -13,3 +13,35 @@
13
13
 
14
14
 
15
15
  参照予定の[変数の型](https://www.php.net/manual/ja/language.types.php)にあわせて初期化するのが最もベターな対応方法です。
16
+
17
+
18
+
19
+ Undefined indexは「未定義のインデックス」
20
+
21
+ 下記が再現例です
22
+
23
+ ```php
24
+
25
+ <?php
26
+
27
+ $arr = ["a"=>"aa"];
28
+
29
+ echo $arr["a"];
30
+
31
+ echo $arr["b"];
32
+
33
+ ```
34
+
35
+ bは定義されてないので参照できません。
36
+
37
+
38
+
39
+ ただこれは「初期値を定義したらいい」とはならないケースも多いです。
40
+
41
+ 既に書いてある通りですが、今回はブラウザから単にアクセスしたときはGETで処理されるのでPOSTが定義されてないケースです。
42
+
43
+ $_POSTはそもそも[スーパーグローバル変数](https://www.php.net/manual/ja/language.variables.superglobals.php)で、自動的に定義されるものであるため、初期値を定義するものではありません。
44
+
45
+
46
+
47
+ [現在のリクエストがGETかPOSTかを判定する](https://www.javadrive.jp/php/sample/keijiban/index3.html)とか、[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)でチェックするなどの対策が有効です。