是否有检查参数是否存在且大于零的速记方法?

我正在尝试检查是否提供了参数并通过了条件,但似乎很冗长。这就是我所拥有的:


if (isset($request['limit']) && is_numeric($request['limit']) && (int)$request['limit'] > 0) {

    $post_params['posts_per_page'] = (int)$request['limit'];

}

我认为这是安全的,但是有没有更简洁的方法来实现这一目标,同时仍然保持安全?


莫回无
浏览 140回答 3
3回答

慕沐林林

使用filter_input或filter_varif (isset($request['limit']) {    $var = filter_var($request['limit'], FILTER_VALIDATE_INT, ['min_range' => 0]);    if ($var) {       $post_params['posts_per_page'] = $var;    }}但理想情况下,您将在生成 $request 数组时执行此操作。$request = [    'limit' => filter_input(INPUT_GET, 'limit', FILTER_VALIDATE_INT, ['min_range' => 0])];if ($request['limit']) {    $post_params['posts_per_page'] = $var;}

凤凰求蛊

不确定你是否认为这是一个速记......$correct = @(preg_match('/^[1-9]\d*$/', $request['limit']));"@" 会抑制这句话中的任何警告,但你能得到的唯一警告是变量没有定义,所以它是受控的。
打开App,查看更多内容
随时随地看视频慕课网APP