¿Por qué fusionarías $ _GET y $ _POST en PHP?
-
07-07-2019 - |
Pregunta
Acabo de ver este código mientras estudiaba el código fuente de WordPress (PHP). Puede ver que combinan / convierten todos los valores de obtención y publicación en una matriz de solicitud.
Ahora como lo sé, $ _GET y $ _POST ya están disponibles llamando a $ _REQUEST SIN utilizando la función array_merge (), ¿alguna idea de por qué harían esto?
Acabo de ver este código mientras estudiaba el código fuente de WordPress (PHP). Puede ver que combinan / convierten todos los valores de obtención y publicación en una matriz de solicitud.
Ahora como lo sé, $ _GET y $ _POST ya están disponibles llamando a $ _REQUEST SIN utilizando la función array_merge (), ¿alguna idea de por qué harían esto?
<*>REQUEST = array_merge( Acabo de ver este código mientras estudiaba el código fuente de WordPress (PHP). Puede ver que combinan / convierten todos los valores de obtención y publicación en una matriz de solicitud.
Ahora como lo sé, $ _GET y $ _POST ya están disponibles llamando a $ _REQUEST SIN utilizando la función array_merge (), ¿alguna idea de por qué harían esto?
<*>GET, Acabo de ver este código mientras estudiaba el código fuente de WordPress (PHP). Puede ver que combinan / convierten todos los valores de obtención y publicación en una matriz de solicitud.
Ahora como lo sé, $ _GET y $ _POST ya están disponibles llamando a $ _REQUEST SIN utilizando la función array_merge (), ¿alguna idea de por qué harían esto?
<*>POST);
Solución
Esto se debe a que el $ _REQUEST
predeterminado es una fusión de $ _GET
, $ _POST
Y $ _COOKIE
. Además, el orden en que las variables de estas superglobales se fusionan en $ _REQUEST
depende de la configuración ini variables_order
y a partir de PHP 5.3.0 también puede verse influenciado por < code> request_order .
Entonces, supongo que el desarrollador quería asegurarse de que $ _REQUEST
consta de solo $ _GET
y $ _POST
, combinados en ese orden en particular, si no tenía acceso a la configuración ini (en un host compartido, por ejemplo). Verá, variables_order
y request_order
no son configurables por script.
HTH
Otros consejos
$ _REQUEST
contiene el contenido de las matrices $ _GET
, $ _POST
y $ _COOKIE
de forma predeterminada. Tal vez quieran excluir las variables COOKIE, ya que generalmente no se usa para ese propósito.
Esto es así si tiene una variable GET y una variable POST con el mismo nombre, elegirá la variable POST sobre la GET.
También es posible que no desee las cookies en la variable $ _REQUEST.
No sé específicamente por qué se hizo donde lo viste, pero lo he visto antes cuando se ha realizado algún procesamiento en los valores de una matriz u otra y quieres fusionar esos cambios nuevamente en $ _REQUEST para que cualquiera que use $ _REQUEST obtenga los cambios aunque se hayan realizado en las variables $ _POST o $ _GET.
Esto surge en situaciones como Wordpress porque los desarrolladores de plugins podrían estar usando cualquiera de esas variables para acceder a los datos y el núcleo de Wordpress necesitaría asegurarse de que todos obtengan los mismos datos.
¿Por qué no querrías hacerlo en $ _REQUEST directamente? Porque $ _REQUEST contiene una tonelada de información adicional que $ _POST y $ _GET no tienen. Es posible que no desee aplicar su procesamiento a todos esos bits adicionales.