$_GET
に格納された値など、PHPには文字列でしか取得できない情報が存在します。
その値を真偽値として扱いたいときにはfilter_var
関数が個人的に便利だったので、その他真偽値の判定にまつわる関数とともに出力結果をまとめました。
例:
sample.php
$model = getData($_POST["id"]);
$model->isPublished = filter_var($_POST("isPublished"), FILTER_VALIDATE_BOOLEAN);
$model->save();
早見表
値 | if($var) | isset($var) | empty($var) | is_null($var) | filter_var($val, FILTER_VALIDATE_BOOLEAN) |
---|---|---|---|---|---|
true | true | true | false | false | true |
'true' | true | true | false | false | true |
false | false | true | true | false | false |
'false' | true | true | false | false | false |
1 | true | true | false | false | true |
'0' | false | true | true | false | false |
0 | false | true | true | false | false |
'' | false | true | true | false | false |
'hoge' | true | true | false | false | false |
NULL | false | false | true | true | false |
(unset) | false | false | true | true | false |
array() | false | true | true | false | false |
array(1) | true | true | false | false | false |
もっと見る
値 | if($var) | isset($var) | empty($var) | is_null($var) | filter_var($val, FILTER_VALIDATE_BOOLEAN) |
---|---|---|---|---|---|
true | true | true | false | false | true |
'true' | true | true | false | false | true |
false | false | true | true | false | false |
'false' | true | true | false | false | false |
't' | true | true | false | false | false |
'y' | true | true | false | false | false |
'yes' | true | true | false | false | true |
'f' | true | true | false | false | false |
'n' | true | true | false | false | false |
'no' | true | true | false | false | false |
0 | false | true | true | false | false |
'0' | false | true | true | false | false |
-1 | true | true | false | false | false |
'-1' | true | true | false | false | false |
1 | true | true | false | false | true |
'1' | true | true | false | false | true |
1.0 | true | true | false | false | true |
'1.0' | true | true | false | false | false |
1.1 | true | true | false | false | false |
'1.1' | true | true | false | false | false |
100 | true | true | false | false | false |
'100' | true | true | false | false | false |
-100 | true | true | false | false | false |
'-100' | true | true | false | false | false |
'' | false | true | true | false | false |
'hoge' | true | true | false | false | false |
NULL | false | false | true | true | false |
(unset) | false | false | true | true | false |
array() | false | true | true | false | false |
array(1) | true | true | false | false | false |
特徴
- 唯一、文字列で渡された
"true"
、"yes"
を、true
として判定する関数である - booleanという型自体が
Truely/Falsy
のように曖昧さを含むものではなく、本来のTrue/False
の2択であるという概念を基準に判定している(ように見える)
第2引数に指定するオプションは、ここにまとめられています。
参考
いつも参考にさせていただいています。