增加 $_GET 变量

问题描述 投票:0回答:1

如何让 $_GET['ago'] 变量增加 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;
    }

}   

我想将我的 URL 更改为每次点击时增加 1 指南?前=1 指南?前=2 指南?前=3 等等

php global-variables increment
1个回答
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['ago'],但乍一看,它似乎通过更改全局值(这也会渲染 中的增量毫无意义)。 PHP 中的超全局变量可能是危险的事情 - 我发现最好将它们视为不可变并从中复制值,而不是直接处理它们。

© www.soinside.com 2019 - 2024. All rights reserved.