Mailinglisten-Archive |
Hi, > 4. Die einzig korrekte Weise in PHP ein Array zu durchlaufen ist > > while(list($k, $v) = each($a)) { print "$k $v\n$ } Es gibt noch eine: count (array) und dann in einer Schleife iterieren. $arr ["eintrag"] = 1 ; $arr ["nochwas"] = 0 ; $arr ["letztens"] = 2 ; for ( $i = 0; $i < count ( $arr) ; $i ++ ) { echo "<br>". $i . ": " . key ( $arr ) . " == " . $arr [ key ( $arr ) ] ; next ( $arr ); } Man kriegt als Zusatzinformation mit $i noch die Rangfolge des Eintrags. > > Perl hat dieses Problem nicht. Es unterscheidet undef und 0. > U.a. eine Funktion wie strpos wird durch die fehlende Unterscheidbarkeit verhunzt. Ist der gesuchte Substring (needle) am Anfang des durchsuchten (haystack), gibt es einen Rückgabewert, der identisch ist mit dem, wenn needle überhaupt nicht vorkommt. Der Workaround geht über strlen ($ergebnis), aber das ist seltsam. Mal abgesehen davon, dass mir keine andere Programmiersprache bekannt ist, die numerisch 0 und Leerstring gleichsetzt. In der Praxis führt das ständig zu skurrilen Schwierigkeiten. Ich finde, das wäre doch mal einer Änderung wert? Mit freundlichen Grüßen, Oliver Kummerow email: naklar_(at)_altavista.net
php::bar PHP Wiki - Listenarchive