D'après le manuel, les variables sont représentées par un signe dollar '$' suivi du nom. Ce nom est sensible à la casse (ie : $x != $X), et il suit les mêmes règles de nommage que les autres entités PHP. Ainsi, un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés.

Ok, c'est pas mal, mais c'est incomplet. Le script suivant pourrait laisser penssif, mais non :) It's not a bug, it's a feature :)

<?php
$foo = 'php';
//
// Ecriture connue
//
print "foo -> $foo";
print '<br>';
//
// Ecriture moins connue
//
print "foo -> ${foo}";
print '<br>';
//
// Ecriture quasi inconnue et pourtant valide
//
print "foo -> {$foo}";
?>
Ce script, parfaitement valide, retournera :

foo -> php
foo -> php
foo -> php
Utilité de ses écritures alternatives ? Je l'ignore :)