Tach!
Generell die Empfehlung, wann immer die Struktur feststeht, nimm Klassen/Objekte statt assoziativer Arrays.
Danke für den Rat, werde ich machen. Kannst du mir n kleines Anwendungsbeispiel geben. Metasyntaktische variabel reichen.
Hab ich doch schon erwähnt. Eine Datenbankzugangskonfiguration ist beispielsweise feststehend. Du brauchst den Hostnamen, den Datenbanknamen, den Usernamen, das Passwort. Diese Angaben brauchst du immer. Es ist nicht so, dass da noch beliebige weitere Felder hinzukommen, deren Namen du erst zur Laufzeit kennst. Also kannst du dafür eine Klasse erstellen. Als Leser sieht man dann auch anhand des Codes der Klasse, was konkret für Felder da sind und braucht nicht noch eine zusätzliche Dokumentation, die die Namen der erwarteten Felder auflistet. Und wie auch gesagt, die IDE kann diese Klassendefinition lesen und weiß, welche Felder sie dir zum Autovervollständigen anbieten kann und auch zur Prüfung auf im Code erkennbare (Tipp)Fehler nehmen kann.
was sind Array mit "Magic Strings"?
Wenn du einen String verwenden musst, um dein Programm zu steuern, dann ist das ein Magic String. Nur mit dem richtigen String kommst du voran. Wenn du auf deine Konfigurationswerte zugreifen möchtest, die in einem assoziativen Array abgelegt sind, musst du den passenden Namen als String angeben, um auf das richtige Feld zugreifen zu können. Strings sind normalerweise Datentypen, du verwendest sie aber als Bezeichner. Und wenn du dich vertippst, merkst du das erst zur Laufzeit, weil der Zugriff fehlschlägt. Ein ordentlicher Bezeichner (z.B. Eigenschaftenname einer Klasse) kann von der IDE schon während der Codeeingabe erkannt werden und auch wenn es einen solchen wegen Tippfehler nicht gibt.
dedlfix.