Frage

Ich habe diesen Code gerade gesehen, als ich den WordPress-Quellcode (PHP) studiert habe. Sie können sehen, dass alle Get- und Post-Werte in einem Anforderungsarray zusammengeführt/umgewandelt werden.

Soweit ich weiß, sind $_GET und $_POST bereits durch Aufruf von $_REQUEST verfügbar OHNE mit der Funktion array_merge(), also irgendwelche Ideen, warum sie das tun würden?

$_REQUEST = array_merge($_GET, $_POST);
War es hilfreich?

Lösung

Das ist, weil der Standard $_REQUEST ein Zusammenschluss von $_GET, $_POST UND $_COOKIE ist. Auch in welcher Reihenfolge die Variablen dieser superglobals verschmolzen werden in $_REQUEST ist abhängig von der ini Einstellung variables_order und als PHP 5.3.0 kann auch durch request_order beeinflusst werden. Also meine Vermutung ist, dass der Entwickler machen wollte sicher $_REQUEST besteht aus nur $_GET und $_POST fusionierte in dieser bestimmten Reihenfolge, wenn er keinen Zugang zu ini-Einstellungen hat (auf einem gemeinsamen Host zum Beispiel). Sie sehen, variables_order und request_order auf einer Basis pro Skript nicht konfigurierbar sind.

HTH

Andere Tipps

$_REQUEST enthält den Inhalt von $_GET, $_POST und $_COOKIE Arrays standardmäßig. Vielleicht wollen sie COOKIE Variablen davon ausschließen, da es in der Regel nicht für diesen Zweck verwendet wird.

Das ist so, wenn Sie ein GET-Variable und eine POST-Variablen mit dem gleichen Namen haben, wird die POST-Variablen über die eine GET wählen.

Auch können Sie nicht wollen, die Cookies in der $ _REQUEST Variable.

Ich weiß nicht genau, warum es dort gemacht wurde, wo Sie es gesehen haben, aber ich habe das schon einmal gesehen, als die Werte in dem einen oder anderen Array verarbeitet wurden und Sie diese Änderungen wieder in $_REQUEST zusammenführen möchten, damit jeder Wenn Sie $_REQUEST verwenden, werden die Änderungen abgerufen, auch wenn sie an den Variablen $_POST oder $_GET vorgenommen wurden.

Dies kommt in Situationen wie Wordpress vor, weil Plugin-Entwickler jede dieser Variablen verwenden könnten, um auf Daten zuzugreifen, und der Wordpress-Kern sicherstellen müsste, dass sie alle die gleichen Daten erhalten.

Warum sollten Sie es nicht direkt mit $_REQUEST machen?Weil $_REQUEST eine Menge 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top