Der folgende Code arbeitetMerge Superglobal mit dynamischen Namen
<?php
print_r(array_merge(${"_".$_SERVER['REQUEST_METHOD']}, $_GET));
?>
Aber wenn ich diesen Code in einer Funktion oder Klasse verwendet wird, ist es ein Problem
<?php
class Request {
public static function init() {
return array_merge(${"_".$_SERVER['REQUEST_METHOD']}, $_GET);
}
}
print_r(Request::init());
?>
Das Ergebnis ein leeres Array zurück mit 2 Fehler:
- Hinweis: Undefined variable: _GET in on line 4
- Warnung: array_merge(): Argument # 1 ist kein Array in der Linie 4
Die Warnung ist logisch, aber ich verstehe nicht, die Mitteilung. Ist jemand jemals auf dieses Problem gestoßen? Gibt es eine Lösung? Ein Problem im PHP-Kern?
Es ist eine Möglichkeit, aber das beantwortet nicht die Frage. Eine Lösung, die wir bereits besprochen hatten, ty. –
Warum muss $ GLOBALS anstelle von $ sign verwendet werden? –
@YohannTilotti: Ich habe die Antwort aktualisiert. –