En C las variables se declaran. Cuando el compilador encuentra una variable, es capaz de identificarla al haber sido declarada previamente:
Código:
int a;
a = 5;
printf("%d", a);
Sin embargo, en lenguajes dinámicos (como PHP) no hay declaración de variables. Simplemente, el lenguaje las "crea" a medida que se van usando. Por esto, es necesario utilizar alguna marca para que el compilador sea capaz de identificar las variables. Si, por ejemplo, escribiésemos esto:
¿Qué sería "a"? ¿Una variable? ¿Una llamada a una función sin parámetros? Sin embargo, si escribimos esto:
Estamos dejando claro que "a" es una variable y que lo que queremos escribir es su valor.
Espero haberte servido de ayuda. Un saludo.