2013-04-29 60 views
2

我們總是檢索$_GET['var']中的值,但是是否也可以分配值?我有一個PHP頁面,在一個點上,通過Ajax,我想留在同一頁上,但改變的查詢字符串或做這樣的作業:

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

這可能嗎?

+0

$ _GET變量只是等於你的URL查詢參數。 您可以更改您的查詢字符串,並完成您的工作。沒有必要重寫$ _GET – Svetoslav 2013-04-29 13:56:59

+0

如何在同一頁上更改查詢字符串?是否有可能通過JavaScript? – user961627 2013-04-29 14:03:52

+1

第一個也是最好的方法是重定向到抓取當前查詢並刷新頁面(重定向)到下一頁..其他方式是更改瀏覽器歷史記錄(但只適用於較新的瀏覽器) - http://html5demos.com/history /首先 – Svetoslav 2013-04-29 14:08:54

回答

1

$_GET覆蓋是就像一個普通的數組。唯一的區別是該數組的鍵將自動填充使用HTTP GET請求附帶的值。它們被稱爲superglobals,因爲它們可以在腳本中的任何位置自動且全局地使用,其他方面則像普通數組一樣。

所以,如果你有一個像mypage.php?key=value的請求,PHP自動做了等於這個要求:

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

而且就像任何普通數組,你可以用不同的值將其覆蓋。不過,我真的沒有看到一個用例,除非你正在做一些測試或一些非常奇怪的東西..

2

是的,你可以覆蓋$ _GET。但是,這只是爲了這個要求。

與ajax你做了一個新的請求,並在ajax調用中,你可以使用不同的值爲數據。

2

是的,您可以分配給$ _GET數組,但它不會更改URL中的查詢字符串。

它可能不是做雖然是最明智的事情,因爲它會在下一個請求