SHIRATANI
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Cheery Не много не точно сформулировал проблему, извините. ИМХО вопрос по сути касается любой рекурсивной функции возвращающей числовое значение, то есть не особо важно что мы подсчитываем на каждом шаге рекурсии(файлы, каталоги или что то ещё), а нужно что бы метод возвращал не промежуточные значения, а конечный результат. В общем засунуть рекурсивную функцию в класс не особо сложно. Я например сделал так Код: function WeightOfDir($dir_name) { if ($dir_name == '') { $dir_name = $this->nameofdir; } if ($dh = opendir($dir_name)) { while (($file = readdir($dh)) !== false) { if (($file!='.') && ($file!='..')) { $f=$dir_name . $file; if (filetype($f)=='dir') { $this->WeightOfDir ($f.'/'); } if (filetype($f)!='dir') { $size=$size+filesize($f); } } } closedir($dh); print $size; print "<BR>"; } } | Но в итоге я получаю ряд значении, и если их все сложить, то и получиться размер каталога. А очень хочется что бы метод возвращал размер каталога сразу. Как это можно реализовать? | Всего записей: 50 | Зарегистр. 06-12-2007 | Отправлено: 23:41 17-10-2009 | Исправлено: SHIRATANI, 23:50 17-10-2009 |
|