【发布时间】:2017-04-05 04:24:58
【问题描述】:
我有一个 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;
}
这可以正常工作,但我需要在返回之前将 $size 除以 2。
如果我这样做'return $size / 2;'然后 60 变为 22.5。 72 变为 19.125。这对我来说没有意义。我也尝试过 intdiv(),尝试乘以 0.5 等,我得到了不同的结果,但没有一个是正确的。
我知道这可能是非常基本的东西。
如果我在函数之外进行除法,它可以正常工作,但我想在返回整数之前处理它。
【问题讨论】:
-
您正在递归调用它,因此您的某些结果被多次划分。
-
计算数组并减去静态。我想,它会节省循环的额外工作
-
据我所知,我需要它是递归的,以便子目录中的文件也可以计算在内。有什么方法可以将除法应用于 $size 的最终返回值?
标签: php integer division integer-division