Frage

Diese Frage hat mich über blanke Saiten zu denken.

Wenn PHP eine Zeichenfolge sieht, die in Anführungszeichen nicht eingeschlossen ist, ist es zunächst überprüft, ob es sich um eine Konstante ist. Wenn nicht, geht er nur, es ist ein String und geht trotzdem weiter. So zum Beispiel, wenn ich

echo $foo[bar];

Wenn es eine Konstante genannt bar es, dass für den Array-Schlüssel verwendet, aber wenn nicht, dann es bar als bloßer Zeichenfolge behandelt, so verhält es sich genauso wie

echo $foo["bar"];

Dies kann alle Arten von Problemen führen, wenn zu einem späteren Zeitpunkt eine Konstante mit dem gleichen Namen hinzugefügt wird.

Meine Frage ist, gibt es eine Situation, in der es macht tatsächlich Sinn, einen nackten Zeichenfolge zu benutzen?

War es hilfreich?

Lösung

Nein, ich kann nicht eine einzelne Instanz sehen, wo es Sinn machen würde, und es ist immer gefährlich. Mit Strings ohne Anführungszeichen sollten unbedingt reserviert werden Konstanten zu adressieren. Ich verstehe nicht, wie die Erfinder von PHP entscheiden könnte, diese lächerliche Verhalten überhaupt einzuführen - es die ordnungsgemäße Verwendung der Konstanten macht fast unmöglich (weil, wenn Sie versuchen, eine Konstante zuzugreifen, die noch nicht definiert wurde, wird PHP still und dummerweise generieren ein String) ohne Angabe von jeder Nutzen.

Andere Tipps

Dies ist wahrscheinlich nicht als legitim zählt, sondern tweetable Proof-of-Concept-MVC-Framework meines Freundes, TweetMVC meidet in ein paar Flecken Anführungszeichen ein paar Zeichen in drücken, zB:

foreach(c('mod')as$f)require"t/$f.php";@list($c,$m,$a)=explode('/',@$_GET[r],3);$c=$c?:c('dc');$o=(@include"c/$c.php")?@new$c($m,$a):e(1)

Das einzige Mal, wenn Sie mit einem nackten Zeichenfolge verwenden würden als ein Schlüssel ist, wenn es in den

scroll top