Moin!
for ist hier seit PHP 4 die falsche Entscheidung!
Entweder
while (list($key, $value) = each($mitspieler1))
Du argumentierst mit der Historie von PHP 4, und bringst als "besseres" Beispiel dann das Konstrukt, dass man in PHP 3 anwenden musste, weil foreach noch nicht erfunden war?
Uarghhh!!!
Nun reiß Dich mal zusammen. Trink 'nen Kaffee und überleg nochmal.
Kaffee hatte ich schon.
Ich habe hier dem Manual vertraut, dass ich eigens vorher aufgesucht hatte. Dort steht, dass es each() erst seit PHP 4 gibt.
Nein, da steht, dass es in PHP 4 und PHP 5 drin ist, über die Historie steht da nichts. Weil: Alle Referenzen zu PHP 3 sind aus dem Manual schon seit einiger Zeit eliminiert. Wenn du noch Seiten findest, die "PHP 3" als Versionsangabe enthalten, dann ist das als Überbleibsel zu betrachten, das bei einem entsprechenden Hinweis sicherlich korrigiert wird.
Die Beschreibung zu foreach() schreibt aber explizit, dass sie erst seit PHP 4 existiert. Steht auch in diversen Changelogs, z.B. hier: http://www.zend.com/zend/whats-new.php
Ich hatte das zwar auch anders in Erinnerung, aber wenn es doch dort steht :-)
Du argumentierst ergebnisorientiert. :)
Und trotzdem ist das Konstrukt mit
while (list($key, $value) = each($mitspieler1))
für Arrays immer noch besser, als das mit
for()
Man hat beim seriellen Zugriff auf alle Arrayelemente die Wahl:
for ($i=0; $i < count($array); $i++) {
$array[$i]; //...
}
Funktioniert nur bei numerischer, lückenloser Indizierung des Arrays.
reset($array);
while (list($key, $value) = each($array) {
$array[$key]; /* oder auch */
$value;
}
Funktioniert zwar, ist aber, wie erwähnt, die PHP3-Lösung. Und hat so ihre Randbedingungen, siehe reset().
foreach($array as $key => $value) {
$array[$key]; /* oder auch */
$value;
}
Was soll also Dein Gemecker? Das ist hier mMn fachlich überhaupt nicht angebracht. Ich lasse mir von Dir gerne irgendwas richtig stellen, nur dann muss es auch sinnvoll sein.
Meine Aussage zur Historie ist korrekt.
- Sven Rautenberg