¿Por qué las variables PHP deben ir precedidas de un signo de dólar?

13

Entiendo que todas las variables PHP deben ir precedidas de un signo de dólar (por ejemplo $someValue = 1), pero ¿por qué es este el caso? ¿Por qué se hizo esta elección de diseño?

La razón por la que pregunto es porque mi novia preguntó por qué cuando mencioné que las variables PHP necesitan comenzar con un signo de dólar, y me di cuenta de que no tenía idea de por qué se hizo esta elección sintáctica.

¿Algunas ideas?

Ivan
fuente
11
Porque el creador de PHP no sabía cómo escribir un analizador sintáctico. Por lo tanto, se necesitaba una muleta para identificar los identificadores.
ThomasX
@ThomasX - Jaja probablemente tengas razón ... Tampoco soy fanático de la base del código C (yikes)
Ben DeMott
Creo que solo quien creó PHP puede responder a esta pregunta.
kiamlaluno
1
Supongo que es para alentar al desarrollador ... ¡cada vez que pones $ sign estás más cerca de tu pago!
Kamil Klimek
Sería feliz si no tuviera que usar $this->frente a cada variable de clase y función.
Chloe

Respuestas:

8

Bueno, tampoco soy un gran admirador del $$$ (realmente no me importa cuánto costó la variable). Pero viene de perl.

Los lenguajes de secuencias de comandos interpretados como perl o php usan $ para identificar y analizar rápidamente las variables. Es solo una optimización para el intérprete. ¡Pero definitivamente no es una optimización para el programador!

JSideris
fuente
¿Cómo no es una optimización para un programador? - Puedo identificar inmediatamente las variables y distinguirlas de otras construcciones ..
johannes
Creo que Larry Wall dijo una vez que $ delante de las variables facilitaba la extensión de Perl sin romper el código existente. Podría agregar nuevas palabras clave que aún no se usarían como variables. Debería ser este artículo , pero está detrás de un muro de pago :-(
SL Barth - Restablece a Mónica el
@johannes También puedo identificar inmediatamente una variable en C incluso sin $ porque he memorizado todas las palabras y funciones clave que tienen paréntesis después de ellas.
JSideris
1
@Bizorke C probablemente tiene menos palabras clave (no las contó) pero bueno, PHP tiene constantes, sin $, aunque las personas usualmente usan constantes en UPERCASE. Y bueno, una vez que conoce todas las palabras clave, etc. de memoria, está avanzado, llegar allí podría ser más simple con esta asistencia visual ... pero entonces: Esto es cuestión de gustos. Mi suposición para una respuesta sería "copiada de Perl" y "más fácil de analizar", también conocida. decisión histórica
johannes
@johannes No dije que $ fue copiado de perl, dije que viene de Perl; PHP está basado en Perl. Si es preferencia. No me gusta escribir $ cada vez y en muchos editores $ no se selecciona cuando hace doble clic en la palabra (ralentiza copiar / pegar). Sí, PHP tiene un poco más de palabras clave que C, pero mi argumento aún se aplica a C ++, java, etc. Las palabras clave son generalmente fáciles de memorizar y generalmente son relativamente consistentes entre los lenguajes. Además, PHP no es SOLO para principiantes. Programo en PHP (y en muchos otros idiomas) todos los días, y puedo decirte que $ no ha hecho más que desacelerarme.
JSideris
5

PHP fue originalmente una meta-sintaxis que fue analizada y simplemente llamada dinámicamente a funciones compiladas de programas c.
De esta manera, puede pensar en él de forma similar a un programa "shell" para la "web" ...
No es de extrañar que se hayan utilizado variables con $ dollarsigns similares a las variables shell.

Cuando tenía 12 años y estaba aprendiendo PHP 3 ... como mi primer lenguaje de programación, tener $ hizo la vida mucho más fácil. Sabía lo que era una variable, pero tener un recordatorio en todo el código fuente que leí hizo posible el aprendizaje ... no estoy seguro de que estaría aquí hoy si no comenzara en PHP.

Aquí hay un ejemplo de -> http://www.php.net/manual/en/history.php.php

<! - incluye /text/header.html ->

<! - getenv HTTP_USER_AGENT ->
<! - ifsubstr $ exec_result Mozilla ->
  ¡Hola, estás usando Netscape! <p>
<! - endif ->

<! - sql database select * from table where user = '$ username' ->
<! - ifless $ numentries 1 ->
  Lo sentimos, ese registro no existe <p>
<! - endif salir ->
  Bienvenido <! - $ user ->! <p>
  Tiene <! - $ index: 0 -> créditos restantes en su cuenta. <p>

<! - incluye /text/footer.html ->
Ben DeMott
fuente
2
Si bien no dudo que el signo de dólar fue útil para usted, me pregunto si tal vez fue la simplicidad general de PHP lo que tuvo más que ver con eso. Comencé con Javascript básico cuando era adolescente y encontré que las variables eran bastante fáciles de aprender, probablemente porque los ejemplos de Javascript en esos días eran muy simples.
Matt Browne