php - filter_input - 如果未设置GET键,则设置为默认值

tan*_*ist 7 php get filter-input

如果所述参数设置(和数字),我想有一个干净,优雅的方法将变量设置为GET参数,如果未设置,则设置为0(或其他默认值).

现在我有:

if (($get_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT))) {
    $opened_staff['id'] = $get_id;
    // some database queries etc.
} else { $opened_staff['id'] = 0; }
Run Code Online (Sandbox Code Playgroud)

我尝试使用一个回调函数,如果值为null或不是数字,则返回0,但如果未设置GET参数'id',则甚至不会调用回调 - 它只是设置$get_id为null.

包含else语句没什么大不了的,只是觉得我可能错过了一些功能filter_input.

Sal*_*n A 17

filter_input函数接受一个options参数.每个过滤器都接受不同的选 例如,FILTER_VALIDATE_INT过滤器可以接受default,min_rangemax_range选择在此描述.

$get_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT, array("options" => array(
    "default" => 0,
    "min_range" => 0
)));
var_dump($get_id);

// $get_id = 0 when id is not present in query string, not an integer or negative
// $get_id = <that integer> otherwise
Run Code Online (Sandbox Code Playgroud)