phpbar.de logo

Mailinglisten-Archive

[php] foreach() verhält sich unterschiedlich auf zwei Servern

[php] foreach() verhält sich unterschiedlich auf zwei Servern

Andi Voss andi at andis.mine.nu
Don Mai 26 23:45:33 CEST 2005


Hi,

ich habe ein kleines Problem mit meinem PHP auf zwei Servern:
Ein produktiv Server:
Slackware 8.1, Kernel 2.4.26, Apache 1.3.33, PHP 4.3.11

Ein Entwicklungsserver:
Slackware 8.1, Kernel 2.4.21, Apache 1.3.27, PHP 4.3.11

Seit dem letzten Upgrade von PHP 4.2.3 auf 4.3.11 auf beiden Servern 
tritt auf dem produktiv Server folgendes Problem auf:
Eine foreach() Schleife kann nicht mehr wie folgt verwendet werden:
foreach( $array as $value )
{
    echo $value;
}

Hier kommt dann immer als Ausgabe das Wort "Array" und nicht wie 
erwartet der Inhalt der Variable $value. Wenn ich das vermeindliche 
Array als Array anspreche ist es komplett leer.
Ich muss die Schleife so schreiben:
foreach( $array as $key => $value )
{
     echo $value;
}

dann gibt er mir alles korrekt und ohne meckern aus.
Das komische daran ist, dass das alles nur auf dem produktiv System ist. 
Auf meinem Entwicklungsserver, der bis auf die Versionen der verwendeten 
Software wie oben beschrieben, absolut identisch konfiguriert ist.
Hatte erst an eine Änderung in der PHP Version gedacht, doch auf meinem 
Entwicklersystem funktioniert die foreach Schleife ja wunderbar, egal 
wie ich sie verwende.

Wenn ich das Array vor der Verwendung von foreach mit z.B. $array[1] 
anspreche, sind die Daten anthalten, die dort sein sollen.

Der Fehler tritt auch bei jedem Mal auf, wo die foreach() Schleife 
"falsch" verwendet wird.

Die php.ini ist auf beiden Systemen identisch -> Kopie.

Habe keine Ahnung wo ich ansetzen soll zu suchen.
Hoffe das Problem ist klar. Wenn noch Infos benötigt werden, dann bitte 
fragen.
Vielen Dank für Eure Hilfe.
Gruss Andi

php::bar PHP Wiki   -   Listenarchive