[PHP-NOTES] note 130452 added to language.variables.superglobals

[email protected] ("[email protected]") Wed, 20 Aug 2025 13:06:14 +0000
Newsgroups php.notes
Message-ID <[email protected]>
Desde o PHP 5.4, não é possível usar uma superglobal como parâmetro para uma função. Isso causa um erro fatal:

function foo($_GET) {
// whatever
}

Isso se chama "sombrear" uma superglobal, e não sei por que as pessoas fazem isso, mas já vi por aí. A solução fácil é renomear a variável $get na função, assumindo que o nome seja único.

Não havia nenhum aviso de descontinuação emitido em versões anteriores do PHP, de acordo com meus testes, nem na 5.3 nem na 5.2. As mensagens de erro na 5.4 são:
Erro fatal: Não é possível reatribuir a variável global automática _GET em...
Erro fatal: Não é possível reatribuir a variável global automática _COOKIE em...
etc.
----
Server IP: 45.112.84.4
Probable Submitter: 45.112.84.18 (proxied: 189.71.140.131)
----
Manual Page -- https://php.net/manual/en/language.variables.superglobals.php
Edit        -- https://main.php.net/note/edit/130452
Del: integrated  -- https://main.php.net/note/delete/130452/integrated
Del: useless     -- https://main.php.net/note/delete/130452/useless
Del: bad code    -- https://main.php.net/note/delete/130452/bad+code
Del: spam        -- https://main.php.net/note/delete/130452/spam
Del: non-english -- https://main.php.net/note/delete/130452/non-english
Del: in docs     -- https://main.php.net/note/delete/130452/in+docs
Del: other reasons-- https://main.php.net/note/delete/130452
Reject      -- https://main.php.net/note/reject/130452
Search      -- https://main.php.net/manage/user-notes.php