Non serve essere guru di PHP, anche perché è una cosa valida per qualunque linguaggio di programmazione.
Intendo che fuori dalla funzione, questa non viene mai chiamata una prima volta, quindi non viene mai avviata.

Una finzione va anche chiamata, non basta definirla.

Da qualche parte fuori dalla funzione deve esserci una cosa del tipo
copia_tutto($src.'/'.$file, $dest.'/'.$file);