Keine Werte außerhalb foreach-Schleife

helaukoenig

Erfahrenes Mitglied
Liebe Gemeinde,

ich komme derzeit bei der Fehlersuche nicht weiter. Ich möchte die Daten aus einem Formular mittels einer foreach-Schleife auslesen und benutze dazu folgenden Code

PHP:
foreach($_POST as $key => $value)
    {
        echo "POST ergibt ".$key.": ".$value."<br>";
     }

Die echo-Anweisung dient eigentlich nur der Überprüfung, aber alles was passiert, ist, dass die echo-Anweisung funktioniert und das war es dann auch schon. Alle neuen Variablen werden mir nebst Werte ausgegeben, aber außerhalb der foreach-Schleife existieren sie nicht. Aber warum nicht?
Da ich nun aber diese Schleife (selbstverständlich ohne echo) schon an anderer Stelle und auf anderen Servern laufen habe, bin ich nun völlig ratlos. :confused:

Vielen Dank für eure Hilfe und ein dreifaches schmetterndes Höckl´n Helau!
 
Das liegt am Gültigkeitsbereich von Variablen. $key und $value werden erst in der foreach-Schleife initialisert, folglich sind sie auch nur innerhalb dieser gültig. Das ist in PHP und in den meisten anderen Script- / Programmiersprachen so beabsichtigt.
 
Das ist in PHP aber anders als in anderen Sprachen wie etwa Java:
PHP:
$array = array('Schlüssel 1' => 'Wert 1', /* … */);
foreach ($array as $key => $value) {}
echo $key . '=' . $value;
 
Ich habe die echo-Anweisung aus der Schleife genommen und schon funktioniert es, muss ich nicht verstehen.

Jedenfalls vielen Dank
 
Zurück