環境
PHP 7.4
filter_inputとは
filter_inputをご確認して下さい。
※ typeを INPUT_GET
のみで検証しておりますので、POSTで利用する場合には下記の早見表は参考までのご確認に留めていただくようにお願いします。
filter_input早見表
$value | FILTER_DEFAULT | FILTER_VALIDATE_INT | FILTER_VALIDATE_FLOAT | FILTER_VALIDATE_BOOLEAN |
---|---|---|---|---|
1 | string(1) "1" | int(1) | float(1) | bool(true) |
0 | string(1) "0" | int(0) | float(0) | bool(false) |
'1' | string(3) "1" | NULL (false) | NULL (false) | bool(false) |
'a' | string(1) "a" | NULL (false) | NULL (false) | bool(false) |
'0.1' | string(3) "0.1" | NULL (false) | float(0.1) | bool(false) |
'1a1' | string(3) "1a1" | NULL (false) | NULL (false) | bool(false) |
'001' | string(3) "001" | NULL (false) | float(1) | bool(false) |
'on' | - | - | - | bool(true) |
'yes' | - | - | - | bool(true) |
'true' | - | - | - | bool(true) |
'false' | - | - | - | bool(false) |
検証内容
下記の int
, float
, string
, checkbox
にそれぞれの値を送り確認しました。
filter_input(INPUT_GET, 'int', FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
filter_input(INPUT_GET, 'float', FILTER_VALIDATE_FLOAT, FILTER_NULL_ON_FAILURE);
filter_input(INPUT_GET, 'string');
filter_input(INPUT_GET, 'checkbox', FILTER_VALIDATE_BOOLEAN);
第4引数の FILTER_NULL_ON_FAILURE
について
第4引数を指定しない場合の失敗した時の返り値がdefaultでは bool(false)
となっている。
FILTER_NULL_ON_FAILURE
を使用することで bool
から NULL
を返してくれるようになる。