Guarda, la funzione che hai segnalato sembra non contenere errori, ma per funzionare a dovere sono necessari tanti piccoli accorgimenti.
Tipo: tutte le variabili che ci sono all'interno sono globali o comunque raggiungibili dall'interno della funzione??

Usare le funzioni è comodo e permette di risparmiare molto lavoro in fase di sviluppo, ma prevede un approccio un po' più rigoroso rispetto alla programmazione procedurale standard.

Non so quale sia il tuo livello di conoscenza del PHP, ma probabilmente dovresti prima fare dei tentativi su funzioni che fanno cosettine più semplici, per capirne i meccanisimi.

Buon Lavoro