Ciao,
forse phicta ha bisogno di una spiegazione un po' più articolata se no la sua confusione non farà che aumentare, ci provo.
Intanto sgombriamo subito il campo da una inesattezza: in html non ci sono variabili perché html non è un linguaggio di programmazione ma solo un linguaggio di tag.
Per questo stesso motivo non si possono utilizzare le variabili php in html, l'html non saprebbe come usarle non avendo istruzioni di assegnazione, cicli e costrutti decisionali.
Php e javascript, invece, essendo linguaggi di programmazione, utilizzano variabili ma non possono scambiarsele visto che girano su computer diversi. Non è possibile quindi referenziare da js una variabile php o viceversa.
Le variabili possono essere viste come dei contenitori che vengono riempiti di volta in volta con dei valori. Quello che si può passare dal client al server, o viceversa, è il valore che in un certo istante è contenuto in una variabile. Questo però, sottolineo, non significa passare la variabile.
Il passaggio di valori da client a server si fa con i metodi get o post e per far ciò si utilizzano, tipicamente, i campi dei form (visibili o nascosti) e la querystring.
Il passaggio di valori da server a client si fa "stampando" il valore della variabile nella pagina html che si sta producendo con le istruzioni print o echo.
Considera, ad esempio, questa riga di codice:
quando il server incontra un tag html come span lo manda al client senza problemi ma in questo caso prima di mandarlo deve chiedere al motore del php di eseguire le istruzioni contenute all'interno dei tag php. Il motore prende in carico queste istruzioni e le esegue. In questo caso l'istruzione è di restituire al server (print) il valore della variabile $_POST['nome'].codice:<span>il nome che hai inserito è: <?php print($_POST['nome']) ?></span>
Il motore andrà a prendere questo valore (non la variabile, ma il suo valore) e lo passerà al server che così potrà completare il tag span e inviarlo al client.
Se prima di questa pagina sono state inviate dal client al server delle informazioni via post, per esempio con un form di registrazione, allora nella variabile $_POST['nome'] ci sarà il nome dell'utente che si è registrato e questo nome comparirà nel tag span.
Nella pagina html che il server manda al client possono anche essere contenuti degli script js che poi verranno eseguiti sul client e anche in questo caso si può chiedere al php di intervenire in fase di costruzione passando i valori delle sue variabili.
Questo esempio è analogo al precedente ma la visualizzazione non è affidata ad uno span ma ad un alert (javascript):
(Non l'ho provato quindi potrebbe esserci qualche errore di digitazione)codice:<script type="text/javascript">alert ("il nome che hai inserito è: <?php print($_POST['nome']) ?>")</script>
E' un po' più chiaro ?