回答編集履歴
1
修正
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)でチェックするなどの対策が有効です。
|