2017-03-06 118 views
0

這段代碼做了什麼? 我無法理解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; 
} 

回答

0

$total--相同$total -= 1,這是一樣的$total = $total -1。這就是所謂的decrement operator。在查看for循環時,您可能對增量運算符很熟悉,例如for ($i = 0, $i++, $i < 10)

該循環可以重寫爲while ($total = $total -1 && $fileSize > 1024),這意味着「while $ total仍然是一個真值(在這種情況下,數字> 0)並且$ fileSize> 1024」。

+0

謝謝你有用的答案 – amir

+0

@amir如果這回答了你的問題,你應該把它標記爲接受其他誰可能有相同的問題。 – FatBoyXPC