2010-02-13 2 views
19

In PHP e in altri linguaggi di scripting abbiamo la sintassi $var mentre Java e altre lingue possiamo fare solo var.

C'è qualche teoria dietro di esso? Li aiuta ad analizzare. Se no, perché avrebbero scelto di virare su un personaggio in più davanti?

+25

Perché gli uccelli ... appaiono all'improvviso? – cletus

+4

ogni volta ... sei vicino a –

+1

Alcune lingue usano il rientro di una parentesi ... ecco perché tutte le lingue hanno differenze di sintassi ... lo stesso per $ prima variabile in PHP –

risposta

67

Impedisce che i nomi delle variabili siano in conflitto con le parole chiave della lingua e consente loro di essere interpolati nelle stringhe.

+5

questa è una bella risposta sintetica che non aiuta molto ... alcuni esempi o dettagli potrebbero aiutare – HorusKol

+37

eppure ... si abbina perfettamente alla domanda – Jacco

+2

+ è molto più facile individuare e lavorare con una variabile in questo modo. – dusoft

9

La mia teoria è che i linguaggi di scripting come php avrebbero bisogno di un modo per continuare a funzionare anche se viene introdotta una nuova parola riservata, come php4 -> php5 è stato aggiunto catch. Dal momento che è un linguaggio di scripting, tutte le pagine web che hanno catturato il nome di una variabile non morirebbero, a causa del cambiamento nella lingua.

Questo non è un problema con i linguaggi compilati poiché tutto viene convertito in un binario ed eventuali cambiamenti nel linguaggio non inciderebbe già compilati programmi

+2

I linguaggi interpretati come Python fanno fare senza alcun prefisso variabile. Le modifiche alla retro-compatibilità si svolgono fino alla prossima versione principale della lingua. – badp

+2

Perl ha sigilli ** e ** è compilato. Certo è per byte-code, ma poi di nuovo è 'C#'. Dovresti davvero cambiare * compilato * in * static *, poiché è più preciso. –

8

Perché costanti e parole riservate venire senza il $ cosa

Non cercare di confrontare le sintassi dei linguaggi di programmazione ... Hanno ragione di essere così diversi. :)

6

Perché alcuni linguaggi sono brutti script di scripting ad hoc e trucchi sciocchi utilizzati per avvisare il "parser" sul fatto che ha del lavoro da fare.

E altre lingue sono stati gli sforzi di progettazione vera e propria lingua che hanno usato i nomi delle variabili reali e sintassi macro non brutto ...

L'una lingua piuttosto decente che utilizza $ è Perl, ma mi permetto di sottolineare che Perl6 lasciò cadere.

+3

Gli sciocchi trucchetti erano probabilmente giustificabili negli anni '70 quando era più importante rendere il codice facile sul compilatore che facile da leggere per un essere umano. – Dan

+1

Sfortunatamente Perl6 non ha rilasciato sigilli [1] ($, @,%). [1] http://en.wikipedia.org/wiki/Perl_6#Sigil_invariance – nimrodm

+4

** Fortunatamente ** Perl 6 non ha rilasciato i sigilli, altrimenti non sarebbe più Perl. –

8

Perché le sue radici laici in Perl: PHP History

+2

Per il down-voter: Volete dare una breve nota sul perché? –

+1

E le radici di Perl si trovano nello scripting di shell. – mob

1

Ecco un proposed explanation as to why PHP uses $. Mostra la sequenza di script originali come awk che utilizzava $ tramite Perl in PHP.

Probabilmente originariamente utilizzato per semplificare l'analisi della lingua.