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

回答編集履歴

1

PHP7の場合について追記

2017/05/24 22:34

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  2つの問題があります。
2
2
 
3
- 1つめは比較演算子。PHPの `==` 演算子は非常にゆるい判定で、true と "Male" を比較するとなんと true を返します
3
+ 1つめは比較演算子。PHPの `==` 演算子は非常にゆるい判定で、true と "Male" を比較するとなんと true を返します
4
4
 
5
5
  ```php
6
6
  $hoge = 'hello';
@@ -18,7 +18,7 @@
18
18
  # bool(false)
19
19
  ```
20
20
 
21
- `==` は本当によくトラブルのになるので、極力 `===` を使うよう心がけてください。
21
+ `==` はPHPの "クソ仕様" として有名で、本当にたびたびトラブルの原因になるので、極力 `===` を使うよう心がけてください。
22
22
 
23
23
  [PHP: 比較演算子 - Manual](http://php.net/manual/ja/language.operators.comparison.php)
24
24
 
@@ -32,4 +32,10 @@
32
32
 
33
33
 
34
34
  if(isset($_POST['gen']) && $_POST['gen'] === $value) { echo " checked"; }
35
+ ```
36
+
37
+ なお PHP7.0 以降では、NULL合体演算子 という新しい演算子を使ってもう少しシンプルに書けます。
38
+
39
+ ```php
40
+ if($value === $_POST['gen'] ?? null) { echo " checked"; }
35
41
  ```