【问题标题】:assign a new value to a $_GET variable为 $_GET 变量分配一个新值
【发布时间】:2013-04-29 13:52:41
【问题描述】:

我们总是在$_GET['var'] 中检索值,但是否也可以分配一个值?我有一个 php 页面,在某一时刻,通过 ajax,我想留在同一页面上,但更改查询字符串或执行如下分配:

$_GET['myvar'] = 'newvalue';

这可能吗?

【问题讨论】:

  • $_GET 变量正好等于您的 URL 查询参数。您可以更改查询字符串,您的工作将完成。没有必要覆盖 $_GET
  • 如何在同一页面上更改查询字符串?是否可以通过javascript?
  • 第一种也是最好的方法是重定向以获取当前查询并将页面刷新(重定向)到下一页。其他方法是更改​​浏览器历史记录(但这仅适用于较新的浏览器)-@987654321 @
  • 谢谢,但我需要更改查询字符串而不重定向页面。这可能吗?
  • html5demos.com/history/first - 去这里有你想要的..

标签: php javascript query-string


【解决方案1】:

是的,您可以覆盖 $_GET。但是,这仅适用于该请求。

使用 ajax,您可以发出一个新请求,并且在 ajax 调用中,您可以对数据使用不同的值。

【讨论】:

    【解决方案2】:

    是的,您可以分配给 $_GET 数组,但它不会更改 URL 中的查询字符串。

    这可能不是最明智的做法,因为它将在下一个请求中被覆盖

    【讨论】:

      【解决方案3】:

      $_GET 就像一个常规数组。唯一的区别是该数组的键将自动填充使用 HTTP GET 请求附带的值。它们被称为超全局变量,因为它们在脚本中的任何位置都可以自动全局使用,否则它们的行为就像常规数组一样。

      因此,如果您有类似mypage.php?key=value 的请求,PHP 会自动为您执行与此相同的操作:

      $_GET['key'] = 'value';

      就像任何常规数组一样,您可以用不同的值覆盖它。但是,除非您正在做一些测试或一些非常奇怪的事情,否则我真的看不到它的用例..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多