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();
?>
Gruß,
dimde