2010-02-13 15 views
19

En PHP y algunos otros lenguajes de scripting tenemos la sintaxis $var, mientras que Java y otros lenguajes podemos hacer solo var.

¿Hay alguna teoría detrás de esto? ¿Les ayuda a analizar? Si no, ¿por qué elegirían atacar a un personaje extra en el frente?

+25

¿Por qué aparecen las aves ... de repente? – cletus

+4

cada vez ... está cerca de –

+1

Alguna sangría del uso del lenguaje algún paréntesis ... es por eso que todos los idiomas tienen diferencia de sintaxis ... lo mismo para $ antes de la variable en PHP –

Respuesta

67

Impide nombres de variables que entran en conflicto con las palabras clave del lenguaje, y les permite interpolarse en cadenas.

+5

esta es una buena respuesta concisa que realmente no ayuda mucho ... algunos ejemplos o detalles ayudarían a – HorusKol

+37

y, sin embargo ... coinciden perfectamente con la pregunta – Jacco

+2

+ es mucho más fácil detectar y trabajar con una variable de esta manera. – dusoft

9

Mi teoría es que los lenguajes de scripting como php necesitarían alguna forma de continuar ejecutándose incluso si se introduce una nueva palabra reservada, como php4 -> php5 got catch added. Dado que es un lenguaje de scripting, las páginas web que tenían catch como nombre de variable no morían debido al cambio en el idioma.

Esto no es un problema con los lenguajes compilados ya que todo se convierte en un binario y cualquier cambio en el lenguaje no afectaría ya compilados programas

+2

Idiomas interpretados como Python hacen sin ningún prefijo de variable. Los cambios de compatibilidad con versiones anteriores se mantienen hasta la próxima versión principal del idioma. – badp

+2

Perl tiene sigilos ** y ** está compilado. Claro que es para byte-code, pero de nuevo también lo es 'C#'. Realmente debería cambiar * compiled * a * static *, ya que es más preciso. –

8

Debido constantes y palabras reservadas vienen sin el $ cosa

No intente comparar sintaxis de lenguajes de programación ... Tienen razón al ser tan diferentes. :)

6

Porque algunos lenguajes son feos y ad hoc scripts de código y utilizan trucos tontos para alertar al "analizador" del hecho de que tiene trabajo por hacer.

y otros idiomas fueron los esfuerzos de diseño de lenguaje real que utilizan los nombres de variables reales y la sintaxis de macro no es feo ...

El lenguaje bastante decente que utiliza $ es Perl, pero yo podría señalar que Perl6 dejó caer.

+3

Los trucos ridículos probablemente fueron justificables en la década de 1970 cuando era más importante hacer un código fácil para el compilador que fácil de leer para un humano. – Dan

+1

Desafortunadamente, Perl6 no quitó sigils [1] ($, @,%). [1] http://en.wikipedia.org/wiki/Perl_6#Sigil_invariance – nimrodm

+4

** Afortunadamente ** Perl 6 no soltó los sigilos, de lo contrario ya no sería Perl. –

8

Debido a sus raíces yacía en Perl: PHP History

+2

Para el votante de abajo: ¿Le gustaría dar una breve nota sobre por qué? –

+1

Y las raíces de Perl se encuentran en las secuencias de comandos shell. – mob

1

Aquí es un proposed explanation as to why PHP uses $. Muestra la secuencia de scripts originales, como awk, que usó el $ a través de Perl para PHP.

Probablemente se utilizó originalmente para hacer el análisis sintáctico del idioma mucho más fácil.

Cuestiones relacionadas