Qulle funzioni fanno riferimento alla variabili che crei.
Fondamentalmente servono per gestire lo scope( visibilita' delle var).
se fai una cosa come :
$ciao = "hello";
function saluta()
{
echo $ciao;
}
non verra fuori nulla
ma se fai
function saluta($ciao)
{
echo $ciao;
}
allora viene fuori hello.
Succede perche la funzione di base viene allaocata in uno spazio a se' stante e non puo' accedere di base alle varibili globali,
Si puo' "forzare" il comprortamento con i trak o le funzioni globals etc etc ma farai sempre riferimento alla var che stai usando dagli script attuali. (Almeno credo se sbaglio correggetemi)
Cmq per gestire le sessioni degli utenti usa $_SESSION che sono dedicate a tale scopo.
Queste risiedono lato server e la per il session id generato automaticamente e gestito totlamente da php, puoi salvare tutto quello che ti serve dove vuoi e recuperarlo quando ti serve.
Nel caso fa riferimento alla documentazione per maggiori info sul sito di php trovi un sacco di cose e anche nel sito di html.it ci sono ottime guide per gestire le sssioni in php.