我应该总是使用isset()来获取URL参数吗?

时间:2017-05-20 05:53:02

标签: php isset

这是我的代码:

    $order_newest = $order_votes = $order_featured = $order_frequent = '';
    switch ($_GET['o']) {
        case 'newest':
            $order_newest = 'order_active';
            break;
        case 'votes':
            $order_votes = 'order_active';
            break;
        case 'featured':
            $order_featured = 'order_active';
            break;  
        case 'frequent':
            $order_frequent = 'order_active';
            break;                                          
        default:
            $order_newest = 'order_active';
            break;
    }

当URL中不存在o参数时,它会抛出以下错误:

  

注意:未定义的索引:o在第71行的C:\ xampp \ htdocs中

我可以通过添加以下条件来解决问题:

$order_newest = $order_votes = $order_featured = $order_frequent = '';
if ( isset($_GET['o']) ) {
    switch ($_GET['o']) {
        .
        .
        .
    }
} else {
    $order_newest = 'order_active';
}

但我想这不是正确的方法。因为在这种情况下我必须添加许多包含isset()函数的条件。

无论如何,有没有更好的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

使用filter_input()。例如:

$order = filter_input(INPUT_GET, 'o');

switch ($order) {
  // ...