为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
莫回无 2021-06-03 22:21:48
我正在尝试检查是否提供了参数并通过了条件,但似乎很冗长。这就是我所拥有的:if (isset($request['limit']) && is_numeric($request['limit']) && (int)$request['limit'] > 0) {    $post_params['posts_per_page'] = (int)$request['limit'];}我认为这是安全的,但是有没有更简洁的方法来实现这一目标,同时仍然保持安全?
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

使用filter_input或filter_var


if (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;

}


查看完整回答
反对 回复 2021-06-19
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

不确定你是否认为这是一个速记......

$correct = @(preg_match('/^[1-9]\d*$/', $request['limit']));

"@" 会抑制这句话中的任何警告,但你能得到的唯一警告是变量没有定义,所以它是受控的。


查看完整回答
反对 回复 2021-06-19
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信