Hi!
Und dann sag mir, wie ein Rechner erkennen soll, ob du einen Text oder ein anderes Syntaxelement meinst, wenn nicht durch Einrahmung mit Anführungszeichen. Präzedenz sehen wir in Shell und Perl (sowohl als Zuweisungswert, zugegebenermaßen für Programme mit niedrigem Wert auf der Manipulexitätsordinate, als auch als Hashschlüssel).
Indem man eine Ausnahme einführt: ein einzelnes Wort ist auch ohne Anführungszeichen Text.
OK, gibts es ja teilweise auch in PHP. Array-Schlüssel, die nicht in Anführungszeichen stehen, werden erstmal als Konstante angesehen und wenn es keien mit diesem namen gibt, als String.
Das ist beabsichtigt und funktioniert ganz gut¹, passt ins Vorstellungsmodell von Programmierern wie dem OP, denen noch nicht der Kopf von Dogmen zuzementiert wurde.
Ja, aber wie du schon sagst, ist es nicht sonderlich nützlich, wenn es komplexer wird. Man müsste dann aber immer höllisch aufpassen, da aus einem als String gemeinten Wort schnell mal eine Variable werden kann, wenn man eine mit diesem Namen einführt. Andererseits ist jeder Vertipper kein Fehler mehr, der angezeigt werden könnte, sondern stillschweigend ein String. Würde man sowas trotzdem mit einer Fehler-/Hinweismeldung ahnden, würde man als Programierer diese entweder ausschalten, weil sie für größtenteils beabsichtigten Anwendungen falsch ist. Die eine Meldung bei unbebsichtigter Anwendung ist dann nicht mehr zu sehen oder geht im Wust der anderen unter, wenn man die Warnungen anzeigen lässt. Da ist das Dogma "setze alle Strings in Anführungszeichen" doch die wesentlich einfachere und sinnvollere Vorgehensweise. Das Prinzip hat sich zurecht nicht in Sprachen durchgesetzt, die gewöhnlicherweise auch für komplexe Dinge verwendet werden.
Lo!