回答編集履歴
4
case-insensitive
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。
|
19
|
+
厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。また、**大文字と小文字は区別されません**。
|
20
20
|
|
21
21
|
|
22
22
|
|
3
typo
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
```php
|
24
24
|
|
25
|
-
$bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_
|
25
|
+
$bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
|
26
26
|
|
27
27
|
if ($bool === null) {
|
28
28
|
|
2
補足
test
CHANGED
@@ -3,6 +3,20 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
[PHP: 検証フィルタ - Manual](http://php.net/manual/ja/filter.filters.validate.php)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
> `"1"`、`"true"`、`"on"` および `"yes"` の場合に `TRUE`、 それ以外の場合に `FALSE` を返します。
|
12
|
+
|
13
|
+
>
|
14
|
+
|
15
|
+
> `FILTER_NULL_ON_FAILURE` が設定されている場合は、 `FALSE` が返されるのは `"0"`、`"false"`、`"off"`、`"no"` および `""` の場合のみとなります。 `boolean` 以外の値については `NULL` を返します。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。
|
6
20
|
|
7
21
|
|
8
22
|
|
1
追記
test
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
-
`FILTER_VALIDATE_BOOLEAN`フラグを使うのがおすすめです。
|
1
|
+
`FILTER_VALIDATE_BOOLEAN` フィルタおよび `FILTER_NULL_ON_FAILURE` フラグを使うのがおすすめです。
|
2
|
+
|
3
|
+
|
2
4
|
|
3
5
|
[PHP: 検証フィルタ - Manual](http://php.net/manual/ja/filter.filters.validate.php)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```php
|
10
|
+
|
11
|
+
$bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_NULL_ON_FAILURE);
|
12
|
+
|
13
|
+
if ($bool === null) {
|
14
|
+
|
15
|
+
throw new \Exception('どちらでもない');
|
16
|
+
|
17
|
+
}
|
18
|
+
|
19
|
+
var_dump($bool); // bool(true) か bool(false) のいずれか
|
20
|
+
|
21
|
+
```
|