此功能
function convert($size) {
$unit = array(
'B',
'KByte',
'MByte',
'GByte',
);
return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
有效,但PHPStorm说
第54行的非法数组键类型
这意味着$ unit [$ i]。
这个功能出了什么问题?
答案 0 :(得分:4)
floor
返回一个浮点数,而不是一个整数。 (反直觉,但确实如此。)浮点数是PHP数组中的非法键。
代码工作正常,因为floats are implicitly cast to integers when used as keys in an array,但我想这就是你在PHPStorm中收到通知的原因。