自 PHP 5.4 起,您不能將超全域變數用作函式的參數。這會導致致命錯誤
function foo($_GET) {
// whatever
}
這稱為「遮蔽」超全域變數,我不知道為什麼人們曾經這樣做,但我看過這種情況。簡單的解決方法是將函式中的變數重新命名為 $get,假設該名稱是唯一的。
根據我的測試,在先前的 PHP 版本(5.3 和 5.2)中沒有發出棄用警告。 5.4 版中的錯誤訊息如下:
致命錯誤:無法重新指派自動全域變數 _GET in...
致命錯誤:無法重新指派自動全域變數 _COOKIE in...
等等。