Основная арифметика внутри функции не работает

У меня есть функция PHP, которую я использую для подсчета файлов в каталоге.

function getFileCount($path) {
$size = 0;
$ignore = array('.','..','cgi-bin','.DS_Store');
$files = scandir($path);
foreach($files as $t) {
if(in_array($t, $ignore)) continue;
if (is_dir(rtrim($path, '/') . '/' . $t)) {
$size += getFileCount(rtrim($path, '/') . '/' . $t);
} else {
$size++;
}
}
return $size;
}

Это работает правильно, но мне нужно разделить размер $ на 2, прежде чем вернуться.

Если я сделаю ‘вернуть $ size / 2;’ затем 60 становится 22,5. 72 становится 19,125. Это не имеет смысла для меня. Я также попробовал intdiv (), попытался умножить на 0.5 и т. Д., И я получил разные результаты, но ни один из них не является правильным.

Я знаю, что это, вероятно, что-то чрезвычайно простое.

Если я делю за пределами функции, она работает правильно, но я хочу обработать это, прежде чем возвращать целое число.

1

Решение

Можете ли вы создать функцию-обертку?

function getFileCountDivided($path) {
return getFileCount($path) / 2;
}
0

Другие решения

Вероятно, из-за рекурсии число подкаталогов, разделенное на 2, будет снова разделено как часть верхнего количества каталогов.
Вы можете обернуть эту функцию в другую, которая разделит окончательный счет один раз и вернет. Отслеживание глубины каталогов в этом случае кажется мне слишком сложным, хотя это тоже вариант.

0

По вопросам рекламы [email protected]