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

回答編集履歴

4

case-insensitive

2017/05/31 15:11

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  >
8
8
  > `FILTER_NULL_ON_FAILURE` が設定されている場合は、 `FALSE` が返されるのは `"0"`、`"false"`、`"off"`、`"no"` および `""` の場合のみとなります。 `boolean` 以外の値については `NULL` を返します。
9
9
 
10
- 厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。
10
+ 厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。また、**大文字と小文字は区別されません**。
11
11
 
12
12
  ```php
13
13
  $bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

3

typo

2017/05/31 15:11

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。
11
11
 
12
12
  ```php
13
- $bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_NULL_ON_FAILURE);
13
+ $bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
14
14
  if ($bool === null) {
15
15
  throw new \Exception('どちらでもない');
16
16
  }

2

補足

2017/05/31 15:10

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  [PHP: 検証フィルタ - Manual](http://php.net/manual/ja/filter.filters.validate.php)
4
4
 
5
+
6
+ > `"1"`、`"true"`、`"on"` および `"yes"` の場合に `TRUE`、 それ以外の場合に `FALSE` を返します。
7
+ >
8
+ > `FILTER_NULL_ON_FAILURE` が設定されている場合は、 `FALSE` が返されるのは `"0"`、`"false"`、`"off"`、`"no"` および `""` の場合のみとなります。 `boolean` 以外の値については `NULL` を返します。
9
+
10
+ 厳密には `"on"` `"off"` だけではありませんが、`"1"` や `"0"` も同等に扱ったほうが便利な場合が多いです。論理値を文字列に変換したときはこうなるので。
11
+
5
12
  ```php
6
13
  $bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_NULL_ON_FAILURE);
7
14
  if ($bool === null) {

1

追記

2017/05/31 15:07

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,2 +1,11 @@
1
- `FILTER_VALIDATE_BOOLEAN`フラグを使うのがおすすめです。
1
+ `FILTER_VALIDATE_BOOLEAN` ィルタおよび `FILTER_NULL_ON_FAILURE` フラグを使うのがおすすめです。
2
+
2
- [PHP: 検証フィルタ - Manual](http://php.net/manual/ja/filter.filters.validate.php)
3
+ [PHP: 検証フィルタ - Manual](http://php.net/manual/ja/filter.filters.validate.php)
4
+
5
+ ```php
6
+ $bool = filter_var($test, FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_NULL_ON_FAILURE);
7
+ if ($bool === null) {
8
+ throw new \Exception('どちらでもない');
9
+ }
10
+ var_dump($bool); // bool(true) か bool(false) のいずれか
11
+ ```