这个函数
function convert($size) {
$unit = array(
'B',
'KByte',
'MByte',
'GByte',
);
return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
有效但 PHPStorm 说
Illegal array key type on line 54
这意味着 $unit[$i]。
这个函数有什么问题?
最佳答案
floor
返回一个 float ,而不是一个整数。 (违反直觉,但却是事实。) float 是 PHP 数组中的非法键。
代码工作正常,因为 floats are implicitly cast to integers when used as keys in an array ,但我想这就是您在 PHPStorm 中收到通知的原因。
关于php - 非法数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019651/