2010-02-13 13 views
19

W PHP i niektórych innych językach skryptowych istnieje składnia $var, podczas gdy Java i inne języki można zrobić tylko var.

Czy jest za tym jakaś teoria? Czy to pomaga im parsować. Jeśli nie, to dlaczego mieliby wybierać z przodu dodatkową postać?

+25

Dlaczego ptaki ... nagle się pojawiają? – cletus

+4

za każdym razem ... jesteś blisko –

+1

Niektóre wcięcia w języku niektóre nawiasy ... dlatego wszystkie języki mają różną składnię ... tak samo dla $ przed zmienną w PHP –

Odpowiedz

67

Zapobiega konfliktowi nazw zmiennych ze słowami kluczowymi języka i umożliwia ich interpolację w łańcuchach.

+5

to jest fajna, zwięzła odpowiedź, która tak naprawdę niewiele pomaga ... niektóre przykłady lub szczegóły pomogłyby – HorusKol

+37

, a jednak ... pasuje bezbłędnie do pytania – Jacco

+2

+ znacznie łatwiej jest wykryć i pracować ze zmienną w ten sposób. – dusoft

9

Moja teoria mówi, że języki skryptowe, takie jak php, powinny w jakiś sposób działać, nawet jeśli wprowadzono nowe słowo, takie jak php4 -> php5, ale dodano catch. Odtąd każdy język stron internetowych, które złapały nazwę zmiennej, nie umarłby, ze względu na zmianę języka.

To nie jest problem ze skompilowanych językach ponieważ wszystko jest konwertowane na binarne, a wszelkie zmiany w języku nie wpłynie już skompilowanych programów

+2

Języki zinterpretowane, takie jak Python, robią bez żadnego zmiennego prefiksu. Zmiany łamania wstecznej zgodności są utrzymywane do następnej wersji językowej. – badp

+2

Perl ma sigile ** i ** jest kompilowany. Pewnie, że jest to kod bajtowy, ale znowu jest to C#. Powinieneś naprawdę zmienić * skompilowany * na * statyczny *, ponieważ jest dokładniejszy. –

8

Ponieważ stałe i zastrzeżone słowa przyjść bez $ rzecz

Nie próbuj porównywać składni języków programowania ... Mają rację, że są tak różne. :)

6

Ponieważ niektóre języki są brzydkimi teczkami ad hoc i używają głupich sztuczek, aby ostrzec "parsera" o tym, że ma on do wykonania zadanie.

i inne języki były prawdziwe językowe wysiłki projektowe, które wykorzystywane prawdziwych nazw zmiennych i nie brzydki składni makro ...

Ten dość przyzwoity język, który używa $ jest Perl, ale mogę podkreślić, że Perl6 upuścił.

+3

Głupie sztuczki były prawdopodobnie uzasadnione w latach siedemdziesiątych, kiedy ważniejsze było ułatwienie kompilatorowi kodu niż łatwego do odczytania przez człowieka. – Dan

+1

Niestety Perl6 nie zrzucił sigils [1] ($, @,%). [1] http://pl.wikipedia.org/wiki/Perl_6#Sigil_invariance – nimrodm

+4

** Na szczęście ** Perl 6 nie upuścił sigili, w przeciwnym razie nie byłby już Perl. –

8

ponieważ jego korzenie leżały w Perlu: PHP History

+2

Do down-voter: Czy chciałbyś pożyczyć krótką notatkę na dlaczego? –

+1

A korzenie Perla leżą w skryptach powłoki. – mob

Powiązane problemy