这段代码如何正常工作?

时间:2017-03-06 06:50:44

标签: php file-manager

这段代码有什么作用? 我主要不能理解while循环! 主要是不能理解$ total--

function getNiceFileSize($file, $digits = 2)
{
    if(is_file($file)){
        $filePath = $file;
        if(!realpath($filePath)){
            $filePath = $_SERVER["DOCUMENT_ROOT"] . $filePath;
        }
        $fileSize = filesize($filePath);
        $sizes = array("TB", "GB", "MB", "KB", "B");
        $total = count($sizes);
        while ($total-- && $fileSize > 1024){
            $fileSize /= 1024;
        }
        return round($fileSize, $digits). " " . $sizes[$total];
    }
    return false;
}

1 个答案:

答案 0 :(得分:0)

$total--$total -= 1相同,与$total = $total -1相同。这被称为decrement operator。在查看for循环时,您可能熟悉增量运算符,例如for ($i = 0, $i++, $i < 10)

循环可以重写为while ($total = $total -1 && $fileSize > 1024),这意味着&#34;而$ total仍然是真值(在这种情况下,数字> 0),$ fileSize是&gt; 1024&#34;