Re: PHP nicht wirklich durchdacht?
Bodo Kaelberer <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hallo
> laut Docu gibt strpos($haystack, $needle) false zurück, wenn die
> $needle nicht im $haystack vorgekommen ist (ansonsten die Stelle an
> der die $needle vorgekommen ist). Jedoch gibt diese Funktion auch
> false zurück wenn $needle direkt am Anfang auftritt!!!!!!!!!
> Warum gibt die Funktion nicht -1 zurück wenn es nicht vorkommt, dann
> kann unterschieden werden zwischen nicht vorkommen im String und am
> Anfang des Strings vorkommen.
-1 habe ich mir auch schon oft gewünscht.
PHP ist manchmal sehr eigen. Ich denke, man hat da in den Anfängen der
Sprache ein paar Dinge schlecht gemacht, will sich aber aus Gründen
der Kompatibilität nicht davon trennen.
Ungeschickt ist z.B. die bisweilen uneinheitliche Reihenfolge der
Parameter. strpos() erwartet zuerst das, worin gesucht wird und dann
das, was gesucht wird. array_search() aber erwartet zuerst das zu
suchende und dann das zu durchsuchende. Also genau andersherum. Ich
muss selbst nach Jahren noch jedesmal nachschlagen, welche Reihenfolge
wann zum Einsatz kommt.
Oder dass in Funktionsnamen die Wörter mal zusammengeschrieben werden
und mal durch Unterstriche getrennt.
Es wirkt ein bisschen so, als hätten die beteiligten Entwickler ohne
Koordination ihre eigenen Suppchen gekocht.
In Java würde man's korrigieren und das alte als deprecated noch ein
paar Jahre mitlaufen lassen, aber bei PHP geht nichts verloren -
ausser der Sinn (-;
Auch so Sonderheiten wie dass isset() für eine Variable, die den Wert
null hat, false liefert.
Oder dass ein Vergleich wie '1' == '001' true ergibt, weil die Werte
automatisch in Zahlen umgewandelt werden.
Da sind schon einige Besonderheiten, die rauszufinden man schnell mal
ein paar Stunden in den Sand setzen kann.
Bye
--
1 Bodo Kaelberer
123 http://www.webkind.de/ http://www.kaelberer-aio.de/
3 Seelig sind die, die da arm an Geist sind, denn sie werden
4 sich Christlich Soziale Union nennen.
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]