函数内的基本算术不起作用

时间:2017-04-05 04:24:58

标签: php integer division integer-division

我有一个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.

如果我做'返回$ size / 2;'然后60变为22.5。 72变为19.125。这对我来说没有意义。我也试过intdiv(),尝试乘以0.5等等,我得到了不同的结果,但没有一个是正确的。

我知道这可能是非常基本的东西。

如果我在函数之外进行除法,它可以正常工作,但我想在返回整数之前处理它。

2 个答案:

答案 0 :(得分:0)

你能创建一个包装函数吗?

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

答案 1 :(得分:0)

这可能是因为递归,子目录计数除以2将再次作为上部目录计数的一部分进行划分。 您可以将此函数包装在另一个函数中,该函数将最终计数除以一次并返回。在这种情况下,跟踪目录深度对我来说似乎太过分了,尽管这也是一个选项。