Hi,
Naja, es sollte aber doch der eherne Grundsatz gelten: nicht mehr als nötig.
Das Optimum wäre gewesen: Man schreibt es nicht schon in den Code, sondern gibt einen Hinweis, das trimmen nicht zuvergessen, falls es benötigt wird.
Wozu? Was hat ein trim() mit der Anforderung zu tun, das erste Zeichen eines Strings auf isdigit() zu prüfen? Rein gar nix, oder?
Ihr seid doch alle so hinter OOP her, warum haltet ihr euch dann nicht daran?
BTW: verlangt wurde übrigens eine _elegante_ Lösung. Ich habe versucht eine zu liefern.
Wenn du es schon so genau nimmst, dann bitte konsequent: Gefragt wurde nach einer _eleganteren_ Lösung
Nein, meine Wortwahl war durchaus beabsichtigt, ich hatte den Positiv nicht übersehen.
Denn:
- und eleganter als den ganzen String Buchstabe für Buchstabe in ein riesiges Array aufzusplitten um davon dann das erste Feld mit is_numeric zu checken, waren alle Lösungen! ;D
is_numeric() ist für einen ganzen String vorgesehen (ähnlich strtol() und Anverwandte). Diese Funktion auf ein einzelnes Zeichen angewandt bedeutet mit Kanonen auf Spatzen zu schießen. Das ist nicht gerade eleganter geschweige denn überhaupt elegant.
Warum die ganzen Funktionen aus ctypes.h/wctype.h nicht in PHP gewandert sind wundert mich etwas, vielleicht war ich aber auch nur zu blöd sie zu finden.
Aber danke für das Aufzeigen der verschiedenen Möglichkeiten!
Die schnellste Möglichkeit (Tabellenlookup mit O(1)) hatte ich ja auch schon angerissen. Das war's dann aber auch schon, mehr gibt's nicht. (Es gibt noch die Möglichkeit des Bitschuppsens, aber das spart auf den verbreiteten Architekturen nichts und ist deshalb auch nicht eleganter)
so short
Christoph Zurnieden