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.
UPLOAD_DIR è una stringa che contiene il path relativo alla directory da listare e l'invocazione la eseguo non passando alcun parametro.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 . ' '; } ?>
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 staticae viene incrementata una volta quando entra in file e una volta in images...