Is there a really important reason why PHP uses all those dollar signs?
It's the syntax. $x is a variable; $$x is a variable variable. Normally you don't use these, but the feature is there. What it does is evaluate the original (single-dollared) variable as a string, and use it as a variable name. So if you have this:
$a = 'foobar';
$x = 'a';
...it will print "foobar" - $x is 'a', so $$x resolves to $a.
Variable variables are loosely comparable to pointers in C, only that you use strings to point to variables instead of binary pointer values (and that memory management is taken care of by the language).
The C++ equivalent of the above would be:
string a = "foobar";
string* x = &a;
cout << *x;
Only that PHP uses strings to reference variables, so you can construct variable references by name, as strings.