2010-02-13 11 views
19

In PHP und einigen anderen Skriptsprachen haben die $var Syntax während Java und andere Sprachen können wir nur var tun.

Gibt es eine Theorie dahinter? Hilft es ihnen zu analysieren. Wenn nicht, warum würden sie sich entscheiden, einen Extrascharakter vorne anzubringen?

+25

Warum erscheinen plötzlich Vögel? – cletus

+4

jedes Mal ... Sie sind in der Nähe –

+1

Einige Sprache verwenden Einrückung einige Klammer ... das ist, warum alle Sprache Syntaxunterschied haben ... gleich für $ vor Variable in PHP –

Antwort

67

Es verhindert, dass Variablennamen Konflikte mit Sprachschlüsselwörtern verursachen, und erlaubt ihnen, in Strings interpoliert zu werden.

+5

Dies ist eine nette, präzise Antwort, die wirklich nicht viel hilft ... einige Beispiele oder Details würden helfen – HorusKol

+37

und doch ... es passt perfekt zur Frage – Jacco

+2

+ es ist viel einfacher zu erkennen und mit einer Variablen auf diese Weise zu arbeiten. – dusoft

9

Meine Theorie ist, dass Skriptsprachen wie PHP benötigen eine Möglichkeit, um fortzufahren, auch wenn ein neues reserviertes Wort eingeführt wird, wie php4 -> php5 bekam Fang hinzugefügt. Da es sich um eine Skriptsprache handelt, würden Webseiten, die sich als Variablennamen eingefangen haben, aufgrund der Änderung der Sprache nicht abstürzen. Diese

ist nicht ein Problem mit kompilierten Sprachen, da alles in einem binären umgewandelt wird und alle Änderungen in der Sprache nicht beeinflussen würden bereits Programme zusammengestellt

+2

Interpretierte Sprachen wie Python kommen ohne Variablen-Präfix aus. Rückwärtskompatibilitätswechsel werden bis zur nächsten Hauptversion der Sprache durchgeführt. – badp

+2

Perl hat sigils ** und ** ist kompiliert. Sicher ist es zu Byte-Code, aber dann wieder so ist 'C#'. Sie sollten wirklich * kompiliert * zu * statisch * ändern, da es genauer ist. –

8

Da Konstanten und reservierte Worte kommen ohne den $ Thing

Versuchen Sie nicht, Programmiersprachen Syntaxen zu vergleichen ... Sie haben Recht, so anders zu sein. :)

6

Da einige Sprachen sind hässlich Ad-hoc-Skripte kludges und verwendet doof Tricks, um den "Parser" auf die Tatsache, dass es Arbeit zu tun hat.

und andere Sprachen waren echte Sprache Design Bemühungen, die echte Variablennamen verwendet und nicht hässlich Makro Syntax ...

Die eine ziemlich anständige Sprache, die $ verwendet, ist Perl, aber ich könnte darauf hinweisen, dass Perl6 sie fallen gelassen.

+3

Die doofen Tricks waren wahrscheinlich in den 1970er Jahren zu rechtfertigen, als es wichtiger war, den Code für den Compiler einfacher zu machen als für einen Menschen einfach zu lesen. – Dan

+1

Leider hat Perl6 sigils [1] ($, @,%) nicht fallen lassen. [1] http://en.wikipedia.org/wiki/Perl_6#Sigil_invariance – nimrodm

+4

** Zum Glück ** Perl 6 hat Sigils nicht fallen gelassen, sonst wäre es nicht mehr Perl. –

8

Weil seine Wurzeln liegen in Perl: PHP History

+2

Um den Down-Wähler: Möchten Sie eine kurze Anmerkung, warum? –

+1

Und Perls Wurzeln liegen im Shell-Scripting. – mob

1

Hier ein proposed explanation as to why PHP uses $ ist. Es zeigt die Sequenz von Original-Skripten wie awk, die das $ through Perl zu PHP benutzt haben.

Wahrscheinlich ursprünglich verwendet, um das Parsen der Sprache viel einfacher zu machen.

Verwandte Themen