ho trasformato così è giusto?

<?php

function copyRecursive($source, $dest) {
$source = str_replace('\\', '/', $source);
$dest = str_replace('\\', '/', $dest);
$dir = basename($source);
mkdir($dest);
$contenuto_dir = glob($source."*");
foreach($contenuto_dir as $val) {
$val = str_replace('\\', '/', $val);
if(is_dir($val)) {
$sorgente = $val.'/';
$destinazione = $dest.basename($val).'/';
copyRecursive($source, $dest);
} else {
copy($val, $dest.basename($val));
}
}
}
$source = "/dir1/";
$dest = "/dir2/";
copyRecursive($source, $dest);

?>


perchè non mi funziona!