Moin!
Hallo,
- Zum Zeichenvergleichen zweier Strings nutze die Funktion strcmp().
- Sven Rautenberg
vielen Dank. Ich habe das jetzt so und "scheinbar" funktioniert es auch.
if ($plz_array[entry_country_id] == 81 AND strcmp ( $plz_array[entry_postcode] , "99997" ) >= 0 AND strcmp ( $plz_array[entry_postcode] , "99999" ) <=0 )
Ist das jetzt so richtig oder wenn nicht: bin ich auf dem richtigen Weg? Was wäre dann der nächste Schritt?
Aus meiner Sicht ist dein Code jetzt "besser".
Allerdings: Wenn du mehr Sicherheit haben willst, solltest du (damit wären wir bei "nächster Schritt") drüber nachdenken, a) diesen PLZ-Vergleich in eine eigene Funktion einzubetten, die dann im if aufgerufen wird, und b) in einer eigenen Datei einfach mal diverse Tests zu programmieren, die mit definierten Daten sowohl für die PLZ-Grenzen als auch die gesuchte PLZ diese neue Funktion aufrufen und das Ergebnis mit deiner Ergebnisvorgabe vergleicht.
Sprich: Die Funktion kriegt drei Parameter ($such, $unten, $oben) und liefert als Ergebnis true ($such ist innerhalb der Grenzen von $unten und $oben) oder false (ist außerhalb).
Möglicher Testaufruf:
echo "Test Nr. 1: ", (plzsuche("01234","01000", "02000") ? "korrekt" : "nicht korrekt"), "\n";
echo "Test Nr. 2: ", (plzsuche("01234","02000", "03000") ? "nicht korrekt" : "korrekt"), "\n";
Mit einem netten Test-Framework wie "SimpleTest" könnest du dir einiges der überflüssigen Schreibarbeit so einer selbstgebauten Lösung einsparen, allerdings zielt das Framework eher auf objektorientiertes Programmieren, sprich: Wenn man damit nur Funktionen testen will, und mit OOP nicht viel am Hut hat, könnte es sich eher als Klotz am Bein erweisen. Andererseits: Vielleicht kriegt man damit auch einen netteren Einstieg in OOP hin.
- Sven Rautenberg
"Love your nation - respect the others."