Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数中的基本算法不起作用_Php_Integer_Division_Integer Division - Fatal编程技术网

Php 函数中的基本算法不起作用

Php 函数中的基本算法不起作用,php,integer,division,integer-division,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)) {

我有一个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,等等,我得到了不同的结果,但没有一个是正确的

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


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

你能创建一个包装函数吗

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

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

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

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

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

您以递归方式调用它,因此一些结果被多次除法。计算数组并减去静态值。我想,它将节省额外的工作循环,因为我可以告诉我需要它是递归的,以便在子目录中的文件也可以计数。有没有办法将除法应用于$size的最终返回值?您是递归调用它的,因此某些结果被除法多次。计算数组并减去静态值。我想,它将节省额外的工作循环,因为我可以告诉我需要它是递归的,以便在子目录中的文件也可以计数。有没有办法将除法应用于$size的最终返回值?我刚刚尝试了这个方法,它也返回了相同的错误值(60/2=22.5,等等)。如果执行$x=getFileCount($path),会得到什么结果;var_dump(x美元);我得到了int 60,它可以很好地除以metat,但是int()也会被打印出来。有什么方法可以避免这种情况吗?我只是出于调试的目的才建议这样做的。我认为这个划分是有效的,但是在你回显输出的地方出现了一些问题,你能再显示一些调用代码吗?我在WordPress查询循环中调用它。我在这里也尝试了一些变体,但最相关的是:$path=getcwd()/wp内容/上传/截图/'$类“/”;echo getFileCountDivided($path);我刚刚尝试了这个,它也返回了同样的错误值(60/2=22.5,等等)。如果执行$x=getFileCount($path),会得到什么结果;var_dump(x美元);我得到了int 60,它可以很好地除以metat,但是int()也会被打印出来。有什么方法可以避免这种情况吗?我只是出于调试的目的才建议这样做的。我认为这个划分是有效的,但是在你回显输出的地方出现了一些问题,你能再显示一些调用代码吗?我在WordPress查询循环中调用它。我在这里也尝试了一些变体,但最相关的是:$path=getcwd()/wp内容/上传/截图/'$类“/”;echo getFileCountDivided($path);