FILTER_VALIDATE_BOOLEAN的默认选项

时间:2015-01-25 13:11:31

标签: php

我希望我的查询参数为true,除非另有明确设置。

$a = filter_input(INPUT_GET, 'v', FILTER_VALIDATE_BOOLEAN,
    array('options' => array('default' => true)));
var_dump($a);

但是,像/test.php?v=false这样访问此脚本会打印bool(true)。 此外,它始终在任何输入上打印bool(true)

  • 这是预期的行为吗?
  • 如果是这样,我怎样才能以简洁的方式达到目的?

1 个答案:

答案 0 :(得分:1)

您需要将FILTER_NULL_ON_FAILURE作为选项标记传递,以便您编码而不是:

$a = filter_input(INPUT_GET, 'v', FILTER_VALIDATE_BOOLEAN, array('options' => array('default' => true)));

应该是:

$a = filter_input(INPUT_GET, 'v', FILTER_VALIDATE_BOOLEAN, array('options' => array('default' => true), 'flags' => FILTER_NULL_ON_FAILURE));