Selecting $_GET or $_POST depending on the request method isn't a general solution, since it's possible for an HTTP request to have both posted content and a query string in the URI.
If you want to allow for this possibility, you can use
<?php
$req = array_merge($_GET, $_POST);
?>
or vice versa, depending on which you want to be used in the event of a clash between them.
$_REQUEST
$_REQUEST — Variáveis de requisição HTTP
Histórico
| Versão | Descrição |
|---|---|
| 5.3.0 | Introduzida a request_order. Esta diretiva afeta o conteúdo de $_REQUEST. |
| 4.3.0 | Informação da $_FILES foi removida de $_REQUEST. |
| 4.1.0 | Introduzida a $_REQUEST. |
Notas
Nota: Esta é uma 'superglobal', ou global automática, variável. Isto simplismente significa que ela está disponível em todos escopos pelo script. Não há necessidade de fazer global $variable; para acessá-la dentro de uma função ou método.
Nota: Quando executando em linha de comando , esta não incluirá as entradas argv e argc; estas estão presentes no array $_SERVER.
Nota: As variáveis em $_REQUEST são providas para o script via mecanismos de entradas GET, POST, e COOKIE e portando poderia ser modificadas por um usuário remoto e não podem ser confiadas. A presença e ordem das variáveis listadas neste array é definido de acordo com a diretiva de configuração do PHP variables_order.
Veja Também
- import_request_variables() - Importa variáveis GET/POST/Cookie para o escopo global
- Manuseamento de variáveis externas
- A extensão filter
$_REQUEST
13-Aug-2009 10:56
17-Jul-2008 03:04
Don't forget, because $_REQUEST is a different variable than $_GET and $_POST, it is treated as such in PHP -- modifying $_GET or $_POST elements at runtime will not affect the ellements in $_REQUEST, nor vice versa.
e.g:
<?php
$_GET['foo'] = 'a';
$_POST['bar'] = 'b';
var_dump($_GET); // Element 'foo' is string(1) "a"
var_dump($_POST); // Element 'bar' is string(1) "b"
var_dump($_REQUEST); // Does not contain elements 'foo' or 'bar'
?>
If you want to evaluate $_GET and $_POST variables by a single token without including $_COOKIE in the mix, use $_SERVER['REQUEST_METHOD'] to identify the method used and set up a switch block accordingly, e.g:
<?php
switch($_SERVER['REQUEST_METHOD'])
{
case 'GET': $the_request = &$_GET; break;
case 'POST': $the_request = &$_POST; break;
.
. // Etc.
.
default:
}
?>
