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.