2017-03-06 7 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 = $total -1と同じである$total -= 1、同じであることを理解することはできません。これはdecrement operatorとして知られています。 for ($i = 0, $i++, $i < 10)のように、forループを見るときは、増分演算子に精通しているでしょう。

ループはwhile ($total = $total -1 && $fileSize > 1024)と書き直すことができます。これは、while $ totalはまだtruthy値(この場合は数値> 0)で、$ fileSizeは> 1024です。

+0

有用な回答ありがとう – amir

+0

@amirこれがあなたの質問に答えた場合は、同じ質問をしている可能性がある他人のために受け入れたとマークする必要があります。 – FatBoyXPC

関連する問題