Salve a tutti, ho un problemino con i parametri passati ad una funzione che chiamo ricorsivamente. Quello che fa la funzione è elencare i file contenuti in una directory. Posto il codice.
codice:
<?php
function readDirRec($target = UPLOAD_DIR, $level = 0) {
$handle = opendir($target);
echo 'entro in ' . $target . '
';
while ($file = readdir($handle)) {
if ($file != '..' && $file != '.') {
$resource = $target . '/' . $file;
if (is_dir($resource)) {
echo '[img]img/icons/16/directory.png[/img]';
echo $file . '
';
readDirRec($resource, $level++);
} else {
for ($i = 0; $i < $level; $i++) {
echo '[img]img/icons/16/empty.png[/img]';
}
echo '[img]img/icons/16/file.png[/img]';
echo '' . $file . ' (' . $level . ')[' . is_dir($resource) . ']
';
}
}
}
echo 'esco da ' . $target . '
';
}
?>
UPLOAD_DIR è una stringa che contiene il path relativo alla directory da listare e l'invocazione la eseguo non passando alcun parametro.
Quello che ottengo è il risultato nell'immagine allegata e non capisco perchè al ritorno della chiamata ricorsiva $level mi risulta incrementata.
Mi sapreste dare una dritta per capire dove sbaglio?
Grazie infinite
Dal comportamento sembrerebbe che $level sia statica
e viene incrementata una volta quando entra in file e una volta in images...