回答編集履歴

1

文字列と数値の比較を追記

2016/12/13 04:48

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -17,3 +17,37 @@
17
17
 
18
18
 
19
19
  まぁ`filter_input`のがPHP的には美しいかと思います。
20
+
21
+
22
+
23
+ ---
24
+
25
+
26
+
27
+ Warning!
28
+
29
+
30
+
31
+ 基本的に$_GETの中身は文字列が多いからこの問題は少ないと思いますが、
32
+
33
+ `"yes" == 0`の結果は`true`であることに注意してください。
34
+
35
+
36
+
37
+ 文字列と数値の比較では、文字列側を先頭から評価して数値以外の文字列が出現したら評価終了。
38
+
39
+ つまり`"yes"`は数値が出てこないので`0`と同じ判定になります。
40
+
41
+ なので慣習として出来るだけ`===`を利用するようにしましょう。
42
+
43
+
44
+
45
+ ```PHP
46
+
47
+ if(($_GET["hoge"] ?? null) === "foo") {
48
+
49
+ // 処理
50
+
51
+ }
52
+
53
+ ```