Ich habe gerade diesen Code gesehen, während ich den Quelltext von Wordpress (PHP) studiert habe. Sie können sehen, dass sie alle get- und post-Werte in ein Anforderungs-Array umwandeln.
Nun, wie ich es weiß, $ _GET und $ _POST sind bereits verfügbar, indem Sie $ _REQUEST WITHOUT mit der Funktion array_merge () aufrufen, also irgendwelche Ideen, warum sie das tun würden?
%Vor% Das liegt daran, dass der Standardwert $_REQUEST
eine Zusammenführung von $_GET
, $_POST
UND $_COOKIE
ist. Auch die Reihenfolge, in der die Variablen dieser Superglobals in $_REQUEST
zusammengeführt werden, ist abhängig von der Ini-Einstellung variables_order
und kann ab PHP 5.3.0 auch durch request_order
beeinflusst werden.
Meine Vermutung ist also, dass der Entwickler sicherstellen wollte, dass $_REQUEST
nur aus $_GET
und $_POST
besteht, die in dieser Reihenfolge zusammengeführt wurden, wenn er keinen Zugriff auf ini-Einstellungen hatte (zB auf einem Shared Host) . Sie sehen, variables_order
und request_order
sind nicht pro Skript konfigurierbar.
HTH
$_REQUEST
enthält standardmäßig die Inhalte von $_GET
, $_POST
und $_COOKIE
. Vielleicht wollen sie COOKIE-Variablen ausschließen, da sie in der Regel nicht für diesen Zweck verwendet werden.
Dies ist der Fall, wenn Sie eine GET-Variable und eine POST-Variable mit demselben Namen haben, wählt sie die POST-Variable über die GET-Variable.
Sie möchten die Cookies auch nicht in der Variablen $ _REQUEST.
Ich weiß nicht genau, warum es dort gemacht wurde, wo Sie es gesehen haben, aber ich habe es schon einmal gesehen, als die Werte in dem einen oder anderen Array bearbeitet wurden und Sie diese Änderungen wieder in $ _REQUEST zusammenführen wollen damit jeder, der $ _REQUEST benutzt, die Änderungen erhält, obwohl sie an den $ _POST oder $ _GET Variablen vorgenommen wurden.
Dies kommt in Situationen wie Wordpress auf, weil Plugin-Entwickler jede dieser Variablen verwenden können, um auf Daten zuzugreifen, und der Wordpress-Core müsste sicherstellen, dass alle dieselben Daten erhalten.
Warum möchtest du es nicht direkt zu $ _REQUEST machen? Weil $ _REQUEST eine Tonne zusätzlicher Informationen enthält, die $ _POST und $ _GET nicht haben. Möglicherweise möchten Sie Ihre Verarbeitung nicht auf all diese zusätzlichen Bits anwenden.
Tags und Links php array-merge