Pergunta

Eu só vi este código ao estudar o código fonte wordpress (PHP), você pode ver que eles mergre / transformar todos os get e valores pós em 1 série pedido.

Agora, como eu sei que, $ _GET e $ _POST já estão disponíveis chamando $ _REQUEST SEM usando a função array_merge (), então todas as idéias por que eles fariam isso?

$_REQUEST = array_merge($_GET, $_POST);
Foi útil?

Solução

Isso porque o $_REQUEST padrão é uma fusão de $_GET, $_POST E $_COOKIE. Além disso, a ordem em que as variáveis ??destes superglobals são fundidos em $_REQUEST está dependente da configuração variables_order ini e a partir do PHP 5.3.0 também pode ser influenciada por request_order. Então, meu palpite é que o desenvolvedor queria ter certeza $_REQUEST consiste em apenas $_GET e $_POST, fundiu nessa ordem particular, se ele não tiver acesso a configurações ini (em um servidor compartilhado por exemplo). Você vê, variables_order e request_order não são configuráveis ??em uma base por script.

HTH

Outras dicas

$_REQUEST contém o conteúdo do $_GET, $_POST e matrizes $_COOKIE por padrão. Talvez eles queiram excluir variáveis ??BISCOITO a partir dele, uma vez que geralmente não é usado para esse fim.

Este é por isso, se você tem uma variável GET e POST uma variável com o mesmo nome, vai escolher a variável POST sobre o GET.

Além disso, você pode não querer os bolinhos na variável _REQUEST $.

Eu não sei especificamente por que foi feito onde você viu, mas eu vi que feito antes, quando algum processamento tem sido feito sobre os valores em um array ou outra e você quer mesclar essas alterações de volta para $ _REQUEST para que qualquer pessoa usando $ _REQUEST terá as mudanças, mesmo que eles foram feitos para o $ _ POST ou $ _GET variáveis.

Este surge em situações como Wordpress tem porque desenvolvedores de plugins poderia estar usando qualquer uma dessas variáveis ??para acessar os dados eo núcleo Wordpress seria necessário para se certificar que todos obter os mesmos dados.

Por que você não iria querer fazê-lo para US $ _REQUEST diretamente? Porque $ _REQUEST contém uma tonelada de informações extra que $ _POST e $ _GET não têm. Você não pode querer aplicar o seu processamento para todos esses bits extras.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top