dimde: $GET Variablen in Funktionen ausgeben

Beitrag lesen

Hallo Rainer,

$_Get und $_Post sind SuperGlobals.

Nein, $_GET und $_POST sind SuperGlobals. Ansonsten stimmt das :)

Funktionen haben ihren eigenen Variablen-Definitionsraum.

Das ist auch richig.

Du musst die Variablen mit "global $variable" in der Funktion bekannt geben oder
beim Aufruf übergeben.

Das ist ebenfalls richtig.
Allerdings sind $_GET, $_POST, $_SERVER, $_COOKIE sowie $_SESSION, wie Simone (und Du) schon richtig erwähnt hat, SuperGlobals und
damit in _allen_ Variablenräumen vorhanden[1]. Auch in denen von
Funktionen.
Man muss also in selbstdefinierten Funktionen diese Arrays _nicht_
extra mit global bekanntmachen - sie sind es bereits.

Bei mir funktioniert folgender Code jedenfalls Problemlos, d.h. er
gibt z.B. bei einem Aufruf von "<scriptname>.php?foo=bar" "foo : bar"
aus (Hab's jetzt nur mit $_GET versucht, ist ja schon spät *g*).

<?php

function printGlobals()
{
    foreach($_GET as $key => $val) {
        echo $key." : ".$val."<br />\n";
    }
}

printGlobals();

?>

[1] http://www.php.net/manual/en/printwn/language.variables.predefined.php#language.variables.superglobals

Gruß,
dimde