递增$ _GET变量

时间:2011-03-10 23:39:24

标签: global-variables

如何让这个$ _GET ['previous']变量增加1

public function __construct($future=false) {
    $GLOBALS['twd_helper']=&$this;
}   
public function query_string($add, $remove=null) {
    $qs_data = array();
    parse_str($_SERVER['QUERY_STRING'], $qs_data);
    $qs_data = array_merge($qs_data, $add);
    if ($remove) {
        foreach($remove as $key) {
            if (isset($qs_data[$key])) {
                unset($qs_data[$key]);
            }
        }
    }
    return http_build_query($qs_data);
}


public function filter_overnight () {
    if (isset($_GET['tod']) && $_GET['tod'] == 'overnight') {
        $overnight = $_GET['overnight'];
    }

    if (($_GET['ago'])) {
        $_GET['ago'] ? $_GET['ago']++ : $_GET['ago'] = 0;
    }

}   

我希望每次点击时将我的网址更改为1 引导?以前= 1 引导?前= 2 引导?以前= 3 等

1 个答案:

答案 0 :(得分:0)

在html中,只需执行此操作:

<a href="my_link.php?ago=<? echo (int)$_GET['ago'] + 1 ?>">Link Text</a>

你的filter_overnight函数也有点奇怪 - 我认为它可以更具可读性:

if ($_GET['ago'])
{
    $_GET['ago'] = (int)$_GET['ago'] + 1;
}
else
{
    $_GET['ago'] = 0;
}

或三元:

$_GET['ago'] = ($_GET['ago']) ? (int)$_GET['ago'] + 1 : 0

在没有看到整个代码的情况下,我不确定为什么filter_overnight正在递增$ _GET ['previous'],但是一眼就看出它似乎通过改变一个全局值将一个无证的副作用放入函数中(这也是渲染&lt; a&gt;无意义中的增量。 PHP中的超级全局可能是危险的东西 - 我发现最好将它们视为不可变的并从中复制值而不是直接处理它们。